Hola que tal pues aquí les dejo un ejercicio que hice hace tiempo, es el juego clásico mexicano de la lotería en este podrán practicar los arreglos unidimensionales antes que nada debo aclarar que la idea del proyecto es de el Ing. Armando López Ciseña (mi profesor de fundamentos de programación quien lo encargo como proyecto final XD ) bueno sin mas que decir empezamos
Primero pondré algunas imagenes para que vean como funciona
* Esta es la ventana de inicio del juego
*Al dar click en el botón empezar a jugar esto es lo que nos muestra que es un picturebox que es donde se mostrara aleatoriamente toda la baraja, un datagridview de 3x3 con imagenes ordenadas de manera aleatoria, un boton de volver a jugar que es por si no nos gusto las imagenes que nos tocaron y queremos otras,un texbox de solo lectura que es donde se le mostrara al usuario el numero de intentos que lleva,y un botón cantar que cada vez que demos click aumentara los intentos y cambiara la imagen del picturebox.
*Este es un ejemplo como pueden ver llevo 3 intentos y ya tengo 2 imagenes marcadas
*Aquí ya complete toda mi carta con un total de 40 intentos
Ahora si aquí les dejo el código cualquier duda dejen un comentario
string[] archivos = new string[20];
int[] carta = new int[9];int[] acertadas = new int[9];
int intentos = 0;
public Form1()
{
InitializeComponent();
dgv.Visible = false;
pictureBox1.Visible = false;
button2.Visible = false;
label1.Visible = false;
//Lenamos un arreglo con el nombre de las imagenes que disponemos
for (int i = 0; i < archivos.Length; i++)
archivos[i] = "imagen" + (i + 1).ToString() + ".jpg";
}
private void button1_Click(object sender, EventArgs e)
{//Boton Empezar a Jugar
dgv.RowCount = 3;
int i, j, k = 0,n=9;
//Metodo nos devuelve un arreglo de numeros diferentes
carta= AleatoriosDiferentes(n);
//Mostramos las imagenes en el DataGridView
for (i = 0; i < dgv.RowCount; i++)
for (j = 0; j < dgv.ColumnCount; j++)
{
dgv[j, i].Value = Image.FromFile("imagen" + carta[k] + ".jpg");
k++;
}
for (i = 0; i < dgv.RowCount; i++)
dgv.Rows[i].Height = 100;
dgv.Visible = true;
pictureBox1.Visible = true;
button2.Visible = true;
label1.Visible = true;
button1.Text = "Volver a jugar";
intentos = 0;
tbintentos.Text = "";
//Ponemos en el arreglo acertadas 0 ya que es el que nos va ayudar
//A Determinar si ya competo la carta
for (int m = 0; m < acertadas.Length; m++)
acertadas[m] = 0;
pictureBox1.Image = Image.FromFile("imageninicio.jpg");
}
private void button2_Click(object sender, EventArgs e)
{//Boton Cantar
intentos++;
tbintentos.Text = intentos.ToString();
Random r = new Random();
int i, j, k, a;
int bc = r.Next(1, 21);
pictureBox1.Image= Image.FromFile(archivos[bc-1]);
k = 0;
//Verificamos si la imagen del picturebox esta en el datagrid
//Si es asi ponemos la imagen por default y al arreglo acertados ponemos 1
for (i = 0; i < dgv.RowCount; i++)
{
for (j = 0; j < dgv.ColumnCount; j++)
{
if (bc == carta[k])
{
acertadas[k] = 1;
dgv[j, i].Value = Image.FromFile("imagendefault.png");
}
k++;
}
}
int suma = 0;
//Sumamos los elementos de acertadas
for (a = 0; a < acertadas.Length; a++)
suma += acertadas[a];
if (suma == acertadas.Length)
MessageBox.Show("Carta completa");
}
private int[] AleatoriosDiferentes(int n)
{int[] numeros = new int[n];
Random r = new Random();
for (int i = 0; i < numeros.Length; i++)
{
bool yaExiste = true;
while (yaExiste)
{
numeros[i] = r.Next(1, 21);
bool yaEsta = false;
for (int j = 0; j < i; j++)
if (numeros[i] == numeros[j])
{
yaEsta = true;
break;
}
yaExiste = yaEsta;
}
}
return numeros;
}
Aqui el .exe para que vean como funciona
Hola!!!! Una duda... no me muestra el datagridview las imágenes! me sale System.Drawing.Bitmap :( y no muestra las imagenes... alguna solucion??? serias mi salvación!!!
ResponderEliminarclaro mira lo mas probable es que no hayas modificado el tipo de columna mira en el datagridview en la parte donde agregas las columnas en tiempo de diseño hay otra opcion que dice editar columnas vas ahi te saldra un cuadro con todas las propiedades buscas la de ColumnType por default esta DataGridViewTextBoxColumn cambiala a DataGridViewImageColumn has esto para todas las columnas que tengas y ya te deberia mostrar las imagenes espero y te haya servido saludos..........
Eliminarpor cierto tambien para que las imagenes te salgan del tamaño correcto en la propiedad ImageLayout cambiala por Stretch
EliminarPasa tu email :)
EliminarCuál es tu email? :D pasalo! Y gracias por la info!!!!! :DDDDDD
ResponderEliminarenrique no pude descargar el .exe puedes pasarmelo via inbox po facebook
ResponderEliminarOYE MAN.COMO LE HAGO PARA QUE SE VEAN LAS IMAGENES EN EL DATA GRID VIEW?
ResponderEliminaroye no puedo descargar el archivo!.... me lo podrías mandar ami correo? lo que pasa que necesito hacer una lotería!!
ResponderEliminarhola amigo, disculpa quiero hacer esta loteria mi problema es que no puedo poner las imagenes en el datagridview me puedes ayudar??? pasame tu facebook por favor :)
ResponderEliminarCual seria el código para eclipse java
ResponderEliminarno lo puedes hacer sin imagenes
ResponderEliminar