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; } } } } }
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."); } } } }