示例#1
0
        private void btnPuntuaciones_Click(object sender, EventArgs e)
        {
            tmrMemory.Stop();
            FrmMejoresParejas F_MejoresParejas = new FrmMejoresParejas();

            F_MejoresParejas.ShowDialog();
            tmrMemory.Start();
        }
示例#2
0
 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;
         }
     }
 }