Loteria en C#

Moderador: raul338

C#, tambien llamado C Sharp

Loteria en C#

Notapor rogegaviria » Vie Nov 14, 2008 8:00 am

Saludos desde Colombia



Estoy haciendo una loteria...basicamente es hacer dos matrices con numeros aleatorios. el sistema me debe generar un numero cada vez y poner en 0 cuando lo encuentre en alguna de las dos matrices, gana la matriz que primero se llene. adjunto el codigo que tengo, pero la tabla no se me llena con los numeros.



si alguien sabe...agradeceria mucho la ayuda







using System;
class matrices
{
public int[,] matriz;
//static matrices.Main

public void llenar_matriz_aleatoria(int n)
{
matriz = new int[n, n];
Random rnd = new Random();
int aleatorio = rnd.Next(1, 99);
int contador = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (matriz[i, j] != aleatorio)
{
contador++;
}
else
{
i = 0;
j = 0;
contador = 0;
aleatorio = rnd.Next(1, 99);
}
if (n == contador)
matriz[i, j] = aleatorio;
}
}

}

public void llenar_matriz_manual(int n)
{
matriz = new int[n, n];
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
{
Console.WriteLine("digite numero en la posición " + i + "," + j + ":");
matriz[i, j] = Convert.ToInt32(Console.ReadLine());
}

}
public void imprimir_matriz(int n){
for (int i = 0; i < n; i++)
{
Console.WriteLine("
");
for (int j = 0; j < n; j++)
{
Console.Write(matriz[i, j]+" ");
}
}
}
public static void Main(String[] args)
{
matrices matriz1 = new matrices();
matrices matriz2 = new matrices();
matriz1.llenar_matriz_aleatoria(5);
matriz2.llenar_matriz_aleatoria(5);
matriz1.imprimir_matriz(5);
Console.WriteLine();
matriz2.imprimir_matriz(5);
Console.ReadKey();
}
}
rogegaviria
Novato
Novato
 
Mensajes: 1
Registrado: Vie Nov 14, 2008 7:57 am


Re: Loteria en C#

Notapor AaronBC » Sab Nov 15, 2008 5:40 pm

Hola, estuve checando por un rato tu código y esto fue lo que encontré...

La matriz no se llena automáticamente debido a la condición

Código: Seleccionar todo
  1. if (n == contador)

  2.           matriz[i, j] = aleatorio;



Lo que nos dice que solo cuando el valor contenido en la variable n sea igual al de la variable contador, entonces se asignará al campo [i,j] de matriz el valor aleatorio. En tu caso, mandas como parámetro del método llenar_matriz_aleatoria(int n) el número 5, entonces la condición es que cuando contador llegue a 5 se le asigne el valor; contador solamente una vez llega a cinco y no vuelve a inicializarse por lo siguiente

Código: Seleccionar todo
  1. if (matriz[i, j] != aleatorio)

  2. {

  3.           contador++;

  4. }



Ese código compara el valor que tiene aleatorio con el campo de matriz, pero los compara en el momento en que la matriz se encuentra vacía; o bien, cuando todos sus valores son iguales a cero, por tanto siempre resulta diferente y contador sigue aumentando y no llega a igualarse a cero de nuevo.

Disculpa si no soy muy claro, espero que esto te sirva, si es asi dilo y cualquier otra duda posteala haber si yo o alguien más podemos ayudarte :D

Saludos desde México :P
AaronBC
Novato
Novato
 
Mensajes: 1
Registrado: Sab Nov 15, 2008 5:08 pm



    

Volver a C#

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron