Autor Tema: Duda sobre como hacer introducir valor en un baraja española  (Leído 1176 veces)

javierx0246

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
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

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re: Duda sobre como hacer introducir valor en un baraja española
« Respuesta #1 en: 10 de Enero 2023, 11:28 »
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
Código: [Seleccionar]
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,
Código: [Seleccionar]
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

Citar
        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;
            }
        }

NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".