private void btnPuntuaciones_Click(object sender, EventArgs e) { tmrMemory.Stop(); FrmMejoresParejas F_MejoresParejas = new FrmMejoresParejas(); F_MejoresParejas.ShowDialog(); tmrMemory.Start(); }
private void BotonesParejasClick(object sender, EventArgs e) { //Este 'cerrojo' evitara que podamos hacer click hasta que no desaparezcan las imagenes desemparejadas if (cerrojo == false) { //Asignamos una imagen de nuestra carpeta de imagenes dinamicamente usando la variable Tag. ((Button)sender).Image = Image.FromFile(@"ImgParejas\b" + ((Button)sender).Tag + ".jpg"); if (botonPulsado == false) { //Capturamos el primer boton pulsado y lo referenciamos. pareja1 = ((Button)sender); //Aseguramos la entrada en el 'else' mediante este segundo 'cerrojo'. botonPulsado = true; //Eliminamos el evento de dicho boton de modo que no se pueda crear una pareja con el mismo boton. ((Button)sender).Click -= BotonesParejasClick; } else { numMovimientos++; lblMovimientos.Text = "" + numMovimientos; //Capturamos el segundo boton pulsado y lo referenciamos. pareja2 = ((Button)sender); //Si las variables Tag coinciden, eliminamos los eventos click de ambos botones. if ("" + pareja1.Tag == "" + pareja2.Tag) { pareja1.Click -= BotonesParejasClick; pareja2.Click -= BotonesParejasClick; //Incrementamos en 1 el numero de parejas. numParejas++; lblNumParejas.Text = "" + numParejas; //Comprobamos si el juego ha terminado al conseguir las 32 parejas. if (numParejas == 32) { //Paramos el reloj tmrMemory.Stop(); puntuacion = 600 - tiempo; //Llamamos a FrmPuntuacionParejas para introducir un registro FrmPuntuacionParejas F_PuntuacionParejas = new FrmPuntuacionParejas(puntuacion, Convert.ToString(tiempo)); F_PuntuacionParejas.ShowDialog(); //Mostramos las mejores puntuaciones FrmMejoresParejas F_MejoresParejas = new FrmMejoresParejas(); F_MejoresParejas.ShowDialog(); //Preguntamos si vamos a jugar de nuevo. //En caso afirmativo repetimos todos los pasos iniciales para restaurarlo todo. DialogResult dialogResult = MessageBox.Show("¿Reiniciar?", "Memory / Parejas", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { array = Utilidades.Desordenar(array); cerrojo = botonPulsado = false; tiempo = puntuacion = numMovimientos = i = numParejas = 0; lblNumParejas.Text = "" + numParejas; pareja1 = pareja2 = null; foreach (Control ctrl in this.Controls) { if (ctrl is Button && ctrl.Name.Contains("button")) { ((Button)ctrl).Image = null; ctrl.Click -= BotonesParejasClick; ctrl.Click += BotonesParejasClick; ctrl.Tag = array[i]; i++; } } tmrMemory.Start(); } else { this.Dispose(); } } } else { //Iniciamos un reloj cuyo tick dura 2 segundos. tmrParejas.Start(); //Activamos el cerrojo hasta que el evento tick haya ocurrido cerrojo = true; //Devolvemos el evento al primer boton. pareja1.Click += BotonesParejasClick; } //Abrimos el segundo cerrojo para poder volver a intentar hacer una pareja. botonPulsado = false; } } }