Que tal aqui subiendo mi primer codigo se trata de una sopa de letras en donde el usuario o jugador tendra un total de 3 min para encontrar un total de 10 palabras,cada una tiene un grado de dificultad es por eso que no tiene el mismo valor en puntos tambien hay una bonificacion por el tiempo que se tarde en descubrir las 10 palabras bueno sin mas les dejo una imagen para que vean mas o menos como funciona, el codigo y el .exe para cualquier duda o sugerencia dejen un comentario.
public partial class Form1 : Form
{
Random letras = new Random();
int segundos = 60, minutos = 2;
public Form1()
{
InitializeComponent();
dgv.RowCount = 14;
dgv.ColumnCount = 13;
//Llenamos el datagrid con letras aleatorias
for (int i = 0; i < dgv.RowCount; i++)
for (int j = 0; j < dgv.ColumnCount; j++)
dgv[j, i].Value = Convert.ToChar(letras.Next(65, 90));
lp1.Visible = false;
lp2.Visible = false;
lp3.Visible = false;
lp4.Visible = false;
lp5.Visible = false;
lp6.Visible = false;
lp7.Visible = false;
lp8.Visible = false;
lp9.Visible = false;
lp10.Visible = false;
AsignarPalabras();
timer1.Interval = 1000;
timer1.Start();
}
private void dgv_CellClick(object sender, DataGridViewCellEventArgs e)
{
//Evento del data para cuando el usuario de click cambie el color de la celda
dgv.CurrentCell.Style.BackColor = Color.Red;
Ya_esta(dgv);
Puntuacion();
if (JuegoTerminado())
{
timer1.Stop();
Puntuacion();
}
}
public void Ya_esta(DataGridView d)
{
//En este metodo checamos si el usuario ya encontro una palabra y si es asi la tachamos
if (d[3, 2].Style.BackColor == Color.Red && d[4, 3].Style.BackColor == Color.Red && d[5, 4].Style.BackColor == Color.Red && d[6, 5].Style.BackColor == Color.Red)
lp1.Visible = true;
if (d[8, 9].Style.BackColor == Color.Red && d[9, 10].Style.BackColor == Color.Red && d[10, 11].Style.BackColor == Color.Red && d[11, 12].Style.BackColor == Color.Red)
lp2.Visible = true;
if (d[9, 12].Style.BackColor == Color.Red && d[11,10].Style.BackColor == Color.Red && d[10, 11].Style.BackColor == Color.Red && d[12, 9].Style.BackColor == Color.Red)
lp3.Visible = true;
if (d[5, 13].Style.BackColor == Color.Red && d[6, 13].Style.BackColor == Color.Red && d[7, 13].Style.BackColor == Color.Red && d[8, 13].Style.BackColor == Color.Red)
lp4.Visible = true;
if (d[7, 9].Style.BackColor == Color.Red && d[6, 9].Style.BackColor == Color.Red && d[5, 9].Style.BackColor == Color.Red && d[4, 9].Style.BackColor == Color.Red && d[3, 9].Style.BackColor == Color.Red)
lp5.Visible = true;
if (d[0, 3].Style.BackColor == Color.Red && d[0, 7].Style.BackColor == Color.Red && d[0, 6].Style.BackColor == Color.Red && d[0, 5].Style.BackColor == Color.Red && d[0, 4].Style.BackColor == Color.Red)
lp6.Visible = true;
if (d[10, 8].Style.BackColor == Color.Red && d[10, 7].Style.BackColor == Color.Red && d[10, 6].Style.BackColor == Color.Red && d[10, 5].Style.BackColor == Color.Red && d[10, 4].Style.BackColor == Color.Red && d[10, 3].Style.BackColor == Color.Red)
lp7.Visible = true;
if (d[1, 7].Style.BackColor == Color.Red && d[1, 8].Style.BackColor == Color.Red && d[1, 9].Style.BackColor == Color.Red && d[1, 10].Style.BackColor == Color.Red && d[1, 11].Style.BackColor == Color.Red && d[1, 12].Style.BackColor == Color.Red)
lp8.Visible = true;
if (d[8, 0].Style.BackColor == Color.Red && d[8, 1].Style.BackColor == Color.Red && d[8, 2].Style.BackColor == Color.Red && d[8, 3].Style.BackColor == Color.Red && d[8, 4].Style.BackColor == Color.Red && d[8, 5].Style.BackColor == Color.Red && d[8, 6].Style.BackColor == Color.Red)
lp9.Visible = true;
if (d[7, 10].Style.BackColor == Color.Red && d[6, 9].Style.BackColor == Color.Red && d[5, 8].Style.BackColor == Color.Red && d[4, 7].Style.BackColor == Color.Red && d[3, 6].Style.BackColor == Color.Red && d[2, 5].Style.BackColor == Color.Red && d[1, 4].Style.BackColor == Color.Red && d[0, 3].Style.BackColor == Color.Red)
lp10.Visible = true;
}
public void AsignarPalabras()
{ //Esto tmb lo pueden hacer Random
//Aqui se asignan las palabras que va encontrar el usuario
dgv[3, 2].Value = 'H';
dgv[4, 3].Value = 'O';
dgv[5, 4].Value = 'L';
dgv[6, 5].Value = 'A';
dgv[7, 9].Value = 'M';
dgv[6, 9].Value = 'U';
dgv[5, 9].Value = 'N';
dgv[4, 9].Value = 'D';
dgv[3, 9].Value = 'O';
dgv[7, 10].Value = 'G';
dgv[6, 9].Value = 'U';
dgv[5, 8].Value = 'I';
dgv[4, 7].Value = 'T';
dgv[3, 6].Value = 'A';
dgv[2, 5].Value = 'R';
dgv[1, 4].Value = 'R';
dgv[0, 3].Value = 'A';
dgv[0, 7].Value = 'P';
dgv[0, 6].Value = 'L';
dgv[0, 5].Value = 'U';
dgv[0, 4].Value = 'M';
dgv[0, 3].Value = 'A';
dgv[8, 9].Value = 'X';
dgv[9, 10].Value = 'B';
dgv[10, 11].Value = 'O';
dgv[11, 12].Value = 'X';
dgv[10, 8].Value = 'G';
dgv[10, 7].Value = 'R';
dgv[10, 6].Value = 'U';
dgv[10, 5].Value = 'N';
dgv[10, 4].Value = 'G';
dgv[10, 3].Value = 'E';
dgv[9, 12].Value = 'R';
dgv[10, 11].Value = 'O';
dgv[11, 10].Value = 'C';
dgv[12, 9].Value = 'K';
dgv[8, 0].Value = 'B';
dgv[8, 1].Value = 'A';
dgv[8, 2].Value = 'T';
dgv[8, 3].Value = 'E';
dgv[8, 4].Value = 'R';
dgv[8, 5].Value = 'I';
dgv[8, 6].Value = 'A';
dgv[1, 7].Value = 'U';
dgv[1, 8].Value = 'B';
dgv[1, 9].Value = 'U';
dgv[1, 10].Value = 'N';
dgv[1, 11].Value = 'T';
dgv[1, 12].Value = 'U';
dgv[5, 13].Value = 'S';
dgv[6, 13].Value = 'O';
dgv[7, 13].Value = 'N';
dgv[8, 13].Value = 'Y';
}
public bool JuegoTerminado()
{
//Verificamos si todas las palabras estan marcadas si es asi el juego ya acabo
if (lp1.Visible && lp2.Visible && lp3.Visible && lp4.Visible && lp5.Visible && lp6.Visible && lp7.Visible && lp8.Visible && lp9.Visible && lp10.Visible)
return true;
return false;
}
public void Puntuacion()
{
//Calculamos la puntuacion, cada palabra tiene su propio valor y depende del tiempo que el usario
//tardo en descubrir todas las palabras
int ppar = 0, pf = 0;
if (lp1.Visible) ppar += 100;
if (lp2.Visible) ppar += 200;
if (lp3.Visible) ppar += 400;
if (lp4.Visible) ppar += 100;
if (lp5.Visible) ppar += 300;
if (lp6.Visible) ppar += 200;
if (lp7.Visible) ppar += 300;
if (lp8.Visible) ppar += 300;
if (lp9.Visible) ppar += 200;
if (lp10.Visible) ppar += 500;
lpuntosxpalabras.Text = ppar.ToString();
ltotal.Text = ppar.ToString();
if (JuegoTerminado())
{
if (minutos >= 2)
{
ltotalxtiempo.Text = "20";
lpuntosxpalabras.Text = ppar.ToString();
pf = ppar * 20;
ltotal.Text = pf.ToString();
}
else
if (minutos >= 1)
{
ltotalxtiempo.Text = "10";
lpuntosxpalabras.Text = ppar.ToString();
pf = ppar * 10;
ltotal.Text = pf.ToString();
}
else
{
ltotalxtiempo.Text = "4";
lpuntosxpalabras.Text = ppar.ToString();
pf = ppar * 4;
ltotal.Text = pf.ToString();
}
}
}
public void Respuestas()
{
//Este metodo se lanza cuando el tiempo se ha agotado y el usuario no descubrio las palabras entonces
//le mostramos donde estaban
dgv[3, 2].Style.BackColor = Color.Red;
dgv[4, 3].Style.BackColor = Color.Red;
dgv[5, 4].Style.BackColor = Color.Red;
dgv[6, 5].Style.BackColor = Color.Red;
dgv[7, 9].Style.BackColor = Color.Red;
dgv[6, 9].Style.BackColor = Color.Red;
dgv[5, 9].Style.BackColor = Color.Red;
dgv[4, 9].Style.BackColor = Color.Red;
dgv[3, 9].Style.BackColor = Color.Red;
dgv[7, 10].Style.BackColor = Color.Red;
dgv[6, 9].Style.BackColor = Color.Red;
dgv[5, 8].Style.BackColor = Color.Red;
dgv[4, 7].Style.BackColor = Color.Red;
dgv[3, 6].Style.BackColor = Color.Red;
dgv[2, 5].Style.BackColor = Color.Red;
dgv[1, 4].Style.BackColor = Color.Red;
dgv[0, 3].Style.BackColor = Color.Red;
dgv[0, 7].Style.BackColor = Color.Red;
dgv[0, 6].Style.BackColor = Color.Red;
dgv[0, 5].Style.BackColor = Color.Red;
dgv[0, 4].Style.BackColor = Color.Red;
dgv[0, 3].Style.BackColor = Color.Red;
dgv[8, 9].Style.BackColor = Color.Red;
dgv[9, 10].Style.BackColor = Color.Red;
dgv[10, 11].Style.BackColor = Color.Red;
dgv[11, 12].Style.BackColor = Color.Red;
dgv[10, 8].Style.BackColor = Color.Red;
dgv[10, 7].Style.BackColor = Color.Red;
dgv[10, 6].Style.BackColor = Color.Red;
dgv[10, 5].Style.BackColor = Color.Red;
dgv[10, 4].Style.BackColor = Color.Red;
dgv[10, 3].Style.BackColor = Color.Red;
dgv[9, 12].Style.BackColor = Color.Red;
dgv[10, 11].Style.BackColor = Color.Red;
dgv[11, 10].Style.BackColor = Color.Red;
dgv[12, 9].Style.BackColor = Color.Red;
dgv[8, 0].Style.BackColor = Color.Red;
dgv[8, 1].Style.BackColor = Color.Red;
dgv[8, 2].Style.BackColor = Color.Red;
dgv[8, 3].Style.BackColor = Color.Red;
dgv[8, 4].Style.BackColor = Color.Red;
dgv[8, 5].Style.BackColor = Color.Red;
dgv[8, 6].Style.BackColor = Color.Red;
dgv[1, 7].Style.BackColor = Color.Red;
dgv[1, 8].Style.BackColor = Color.Red;
dgv[1, 9].Style.BackColor = Color.Red;
dgv[1, 10].Style.BackColor = Color.Red;
dgv[1, 11].Style.BackColor = Color.Red;
dgv[1, 12].Style.BackColor = Color.Red;
dgv[5, 13].Style.BackColor = Color.Red;
dgv[6, 13].Style.BackColor = Color.Red;
dgv[7, 13].Style.BackColor = Color.Red;
dgv[8, 13].Style.BackColor = Color.Red;
}
public string ContarTiempo()
{
segundos--;
string s = segundos.ToString();
string m = minutos.ToString();
if (minutos == 0 && segundos <= 10)
Console.Beep(876, 1000);
if (segundos < 10)
s = "0" + segundos;
if (segundos < 1)
{
minutos -= 1;
segundos = 60;
}
return m+": "+s;
}
private void breiniciar_Click(object sender, EventArgs e)
{
dgv.Rows.Clear();
dgv.Columns.Clear();
dgv.RowCount = 14;
dgv.ColumnCount = 13;
for (int i = 0; i < dgv.RowCount; i++)
for (int j = 0; j < dgv.ColumnCount; j++)
dgv[j, i].Value = Convert.ToChar(letras.Next(65, 90));
lp1.Visible = false;
lp2.Visible = false;
lp3.Visible = false;
lp4.Visible = false;
lp5.Visible = false;
lp6.Visible = false;
lp7.Visible = false;
lp8.Visible = false;
lp9.Visible = false;
lp10.Visible = false;
lpuntosxpalabras.Text = "";
ltotal.Text = "";
ltotalxtiempo.Text = "";
AsignarPalabras();
segundos = 60;
minutos = 2;
timer1.Interval = 1000;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
ltiempo.Text = ContarTiempo();
if (ltiempo.Text == "0: 00")
{
timer1.Stop();
MessageBox.Show("Se te agoto el tiempo vuelve a intentarlo", "PERDISTE");
Respuestas();
}
}
}
}
ahora el .exe
que es lp1 lp2 lp3 etc????
ResponderEliminarpuedes subir el link del exe
ResponderEliminarSube el proyecto
ResponderEliminar