• Martes 29 de Septiembre de 2020, 15:25

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - kto!

Páginas: [1]
1
C# / Barajar Cartas
« en: Viernes 22 de Junio de 2007, 04:42 »
Hola, soy algo nuevo en programacion y estoy intentando crear un metodo para barajar cartas. El que estoy utilizando a mi parecer funciona logicamente, pero al correrlo el programa se cuelga ya que la computadora se tarda mucho en encontrar los valores aleatorios necesarios, aqui les dejo el codigo del metodo, supongo q debe haber una forma mas eficaz...

public void Barajar()
        {
            Random ram = new Random();

            for (int j = 0; j != 52; j++)
            {
                aleatorio = ram.Next(1, 13);
                aleatorio2 = ram.Next(1, 4);
                for (int h = 0; h != j; h++)
                {
                    if ((Mazo[h] == Espadas[aleatorio]) || (Mazo[h] == Treboles[aleatorio]) ||
                      (Mazo[h] == Corazones[aleatorio]) || (Mazo[h] == Cocos[aleatorio]))
                    {
                        a = false;
                        h = j - 1;                        
                    }
                }
                if (a == true)
                {
                    switch (aleatorio2)
                    {
                        case 1: Mazo[j] = Espadas[aleatorio]; break;
                        case 2: Mazo[j] = Treboles[aleatorio]; break;
                        case 3: Mazo[j] = Corazones[aleatorio]; break;
                        case 4: Mazo[j] = Cocos[aleatorio]; break;
                    }
                }
                else
                {
                    a = true;
                    j--;
                }
            }
        }


Nota: Cada carta tiene primero el valor de la misma y luego el mazo al q pertenece, Espadas = 1, Treboles = 2, Corazones = 3, Cocos = 4. Por ejemplo, el diez de cocos seria: 104.

Páginas: [1]