Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: javierx0246 en 09 de Enero 2023, 16:32
-
Hola estoy haciendo un ejercicio y me falla la parte donde yo tengo que poner el valor. Al atributo valor y el enumerado.
El ejercicio
Debes definir un tipo valor que represente un Naipe de la baraja Española de 48 cartas. El tipo estará compuesto por dos miembros: un valor y un palo, este último sera de tipo enumerado con los siguientes valores posibles: Oros, Copas, Bastos, Espada.
Crea un método en la clase principal que utilizando el tipo Naipe nos devuelva una baraja con las 48 cartas, usa una matriz Naipe[,] baraja= new Naipe[4,12] e inicialízala suponiendo que cada fila representa un palo.
Mi codigo
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Text;
using System.Text.RegularExpressions;
internal class Program
{
struct Naipe
{
public enum Tipo { Oros, Copas, Bastos, Espada }
public Tipo tipo;
public readonly int valor;
public Naipe(Tipo tipo, int valor)
{
this.valor = valor;
this.tipo = tipo;
}
}
public static void Baraja()
{
Naipe[,] Baraja = new Naipe[4, 12];
for (int i = 0; i < Baraja.GetLength(0); i++)
{
for (int j = 0; j < Baraja.GetLength(1); j++)
{
Baraja[i, j].tipo = Naipe.Tipo.Oros;
Baraja[i, j].valor=0
}
}
}
private static void Main(string[] args)
{
Program.Baraja();
Console.ReadLine();
}
}
Gracias
-
Hola.
No controlo C# así que no se decirte el código concreto que necesitas.
Pero la lógica a seguir sería que con el indice i del primer bucle
for (int i = 0; i < Baraja.GetLength(0); i++)Lo uses para recorrer los 4 valores del enum Tipo
Y el índice j del segundo bucle,
for (int j = 0; j < Baraja.GetLength(1); j++) para asignar los 12 valores posibles a las cartas.
Este índice j va a ir de 0 a 11, pero las cartas van a tener valores de 1 a 12, así que al asignar valores tendrás que sumar +1 al índice.
En esto que pongo abajo, la línea azul ya estaría correcta.
Es la roja la que hay que averiguar como, mediante el índice i que va a recorrer los valores de 0 a 3, obtener cada uno de los 4 enum.
No se como se hace eso en C# ni dispongo de tiempo para investigarlo :-\
Pero quizás tú tengas apuntes o algún ejercicio de ejemplo donde se explique
for (int i = 0; i < Baraja.GetLength(0); i++)
{
for (int j = 0; j < Baraja.GetLength(1); j++)
{
Baraja[i, j].tipo = Naipe.Tipo.Oros;
Baraja[i, j].valor= j + 1;
}
}