コード例 #1
0
 private void Ctr_MouseDown(object sender, MouseEventArgs e)
 {
     //Verificamos que el click sea con el botón izquierdo del ratón
     if (e.Button == MouseButtons.Left)
     {
         inicial = e.Location;
         Point ubicacion = ((Control)sender).Location;
         //En este segmento de ifs verificamos de cual de las tres torres estamos tomando el disco
         if ((ubicacion.X > label4.Location.X) && (ubicacion.X < (label4.Location.X + label4.Size.Width)))
         {
             previa = origen;
             //Verificamos si el disco que estamos tomando es el de hasta arriba
             if (ubicacion.Y < (225 - (20 * (previa.GetContador() - 1))))
             {
                 if (!solucion.IsAlive)
                 {
                     mousePresionado = true;
                 }
             }
         }
         else if ((ubicacion.X > label6.Location.X) && (ubicacion.X < (label6.Location.X + label6.Size.Width)))
         {
             previa = auxiliar;
             if (ubicacion.Y < (225 - (20 * (previa.GetContador() - 1))))
             {
                 if (!solucion.IsAlive)
                 {
                     mousePresionado = true;
                 }
             }
         }
         else if ((ubicacion.X > label9.Location.X) && (ubicacion.X < (label9.Location.X + label9.Size.Width)))
         {
             previa = destino;
             if (ubicacion.Y < (225 - (20 * (previa.GetContador() - 1))))
             {
                 if (!solucion.IsAlive)
                 {
                     mousePresionado = true;
                 }
             }
         }
     }
 }
コード例 #2
0
 private void Ctr_MouseUp(object sender, MouseEventArgs e)
 {
     if (mousePresionado)
     {
         mousePresionado = false;
         Point ubicacion = ((Control)sender).Location;
         if ((ubicacion.X > label4.Location.X) && (ubicacion.X < (label4.Location.X + label4.Size.Width)))
         {
             if (origen.GetContador() == 0)
             {
                 origen.Push(previa.Pop());
                 if (origen != previa)
                 {
                     movimientosRealizados++;
                     lblMovimientosDelJugador.Text = movimientosRealizados.ToString();
                 }
             }
             else if (previa.GetTamanioDeDisco() <= origen.GetTamanioDeDisco())
             {
                 origen.Push(previa.Pop());
                 if (origen != previa)
                 {
                     movimientosRealizados++;
                     lblMovimientosDelJugador.Text = movimientosRealizados.ToString();
                 }
             }
             else
             {
                 previa.Push(previa.Pop());
             }
         }
         else if ((ubicacion.X > label6.Location.X) && (ubicacion.X < (label6.Location.X + label6.Size.Width)))
         {
             if (auxiliar.GetContador() == 0)
             {
                 auxiliar.Push(previa.Pop());
                 if (auxiliar != previa)
                 {
                     movimientosRealizados++;
                     lblMovimientosDelJugador.Text = movimientosRealizados.ToString();
                 }
             }
             else if (previa.GetTamanioDeDisco() <= auxiliar.GetTamanioDeDisco())
             {
                 auxiliar.Push(previa.Pop());
                 if (auxiliar != previa)
                 {
                     movimientosRealizados++;
                     lblMovimientosDelJugador.Text = movimientosRealizados.ToString();
                 }
             }
             else
             {
                 previa.Push(previa.Pop());
             }
         }
         else if ((ubicacion.X > label9.Location.X) && (ubicacion.X < (label9.Location.X + label9.Size.Width)))
         {
             if (destino.GetContador() == 0)
             {
                 destino.Push(previa.Pop());
                 if (destino != previa)
                 {
                     movimientosRealizados++;
                     lblMovimientosDelJugador.Text = movimientosRealizados.ToString();
                 }
             }
             else if (previa.GetTamanioDeDisco() <= destino.GetTamanioDeDisco())
             {
                 destino.Push(previa.Pop());
                 if (destino != previa)
                 {
                     movimientosRealizados++;
                     lblMovimientosDelJugador.Text = movimientosRealizados.ToString();
                 }
             }
             else
             {
                 previa.Push(previa.Pop());
             }
         }
         else
         {
             previa.Push(previa.Pop());
         }
         if (movimientosRealizados == 1)
         {
             btnSolucionar.Enabled = false;
             btnReiniciar.Enabled  = true;
         }
         if (destino.GetContador() == (cmbCantidadDeDiscos.SelectedIndex + 1))
         {
             if (movimientosRealizados > int.Parse(lblMovimientosMinimos.Text))
             {
                 MessageBox.Show("¡¡¡Ganaste!!!\n" +
                                 "Muy bien, lo has conseguido, pero puedes mejorar.");
             }
             else
             {
                 MessageBox.Show("¡¡¡Ganaste!!!\n" +
                                 "¡Felicidades! Lo has conseguido en " + lblMovimientosDelJugador.Text +
                                 " movimientos.");
             }
         }
     }
 }