Skip to content

Commit

Permalink
Cambiado cómo se avisa al pulsar iniciar, resolver o contrarreloj
Browse files Browse the repository at this point in the history
Añadida opción de quitar aviso al resolver
  • Loading branch information
PBoleander committed Feb 18, 2021
1 parent c1b6256 commit 8fc2398
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 20 deletions.
27 changes: 18 additions & 9 deletions juegos/PanelControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
class PanelControl implements ActionListener {

final JButton btnIniciar, btnLimpiar, btnPausa, btnResolver;
final JCheckBox chkContrarreloj;
final JCheckBox chkContrarreloj, chkPreguntarAntesDeResolver;

private final Juego juego;

Expand All @@ -21,6 +21,7 @@ class PanelControl implements ActionListener {
btnPausa = new JButton("Pausar");
btnResolver = new JButton("Resolver");
chkContrarreloj = new JCheckBox("Contrarreloj", true);
chkPreguntarAntesDeResolver = new JCheckBox("Preguntar si resolver", true);

btnIniciar.setMnemonic(KeyEvent.VK_N);
btnLimpiar.setMnemonic(KeyEvent.VK_L);
Expand All @@ -45,7 +46,7 @@ public void actionPerformed(ActionEvent actionEvent) {
if (source.equals(btnIniciar)) {
if (!juego.haEmpezado()) juego.iniciar();

else if (mostrarConfirmacion() == JOptionPane.YES_OPTION) juego.resolver();
else mostrarInformacion();

} else if (source.equals(btnLimpiar)) {
if (juego.haEmpezado() && juego.estaDesbloqueado()) {
Expand All @@ -65,29 +66,28 @@ public void actionPerformed(ActionEvent actionEvent) {
}

} else if (source.equals(btnResolver)) {
if (juego.haEmpezado() && juego.estaDesbloqueado()) juego.resolver();
if (!chkPreguntarAntesDeResolver.isSelected() || mostrarConfirmacion() == JOptionPane.YES_OPTION)
juego.resolver();

} else if (source.equals(chkContrarreloj)) {
if (!juego.haEmpezado()) {
juego.setContrarreloj(chkContrarreloj.isSelected());
juego.iniciar();

} else if (mostrarConfirmacion() == JOptionPane.YES_OPTION) {
juego.resolver();
juego.setContrarreloj(chkContrarreloj.isSelected());

} else {
chkContrarreloj.setSelected(!chkContrarreloj.isSelected());
mostrarInformacion();
}
}
}

// Muestra confirmación antes de empezar una nueva partida sin haber acabado la actual
// Muestra confirmación antes de resolver la partida
private int mostrarConfirmacion() {
if (juego.haEmpezado() && juego.estaDesbloqueado()) {
juego.pausar();

Object mensaje = "Antes de empezar una nueva partida debes rendirte y resolver. ¿Deseas hacerlo?";
Object mensaje = "Esto acabará la partida y te quedarás con el mejor resultado que has conseguido ¿Deseas" +
" hacerlo?";
int respuesta =
JOptionPane.showConfirmDialog(null, mensaje, "Aviso", JOptionPane.YES_NO_OPTION);

Expand All @@ -99,4 +99,13 @@ private int mostrarConfirmacion() {
return JOptionPane.CANCEL_OPTION;
}
}

// Muestra información sobre empezar una nueva partida sin haber acabado la actual
private void mostrarInformacion() {
if (juego.haEmpezado() && juego.estaDesbloqueado()) {
juego.pausar();
JOptionPane.showMessageDialog(null, "Para empezar una nueva partida debes resolver.");
juego.reanudar();
}
}
}
17 changes: 12 additions & 5 deletions juegos/VisorCifras.java
Original file line number Diff line number Diff line change
Expand Up @@ -152,20 +152,27 @@ private JPanel crearPanelColumna2(GridBagLayout gridBagLayout) {
columna2Constraints.insets = new Insets(0, 0, 20, 5);

/* 1a fila (botones de nueva partida y contrarreloj) */
JPanel panelBotones = new JPanel(new GridLayout(1, 2, 10, 10));
panelBotones.add(pc.btnIniciar);
panelBotones.add(pc.chkContrarreloj);
JPanel panelBotones = new JPanel(gridBagLayout);
GridBagConstraints botonesConstraints = new GridBagConstraints();
botonesConstraints.insets = new Insets(5, 5, 5, 5);
botonesConstraints.fill = GridBagConstraints.HORIZONTAL;

panelBotones.add(pc.btnIniciar, botonesConstraints);
panelBotones.add(pc.chkContrarreloj, botonesConstraints);

botonesConstraints.gridy = 1;
panelBotones.add(pc.btnResolver, botonesConstraints);
panelBotones.add(pc.chkPreguntarAntesDeResolver, botonesConstraints);

columna2.add(cifras.cifraObjetivo, columna2Constraints);
columna2Constraints.gridx = 1;
columna2.add(panelBotones, columna2Constraints);

/* 2a fila (botones que controlan el juego actual) */
PanelControlCifras pcc = new PanelControlCifras(cifras);
JPanel panelBotonesCifras = new JPanel(new GridLayout(1, 3, 10, 10));
JPanel panelBotonesCifras = new JPanel(new GridLayout(1, 2, 10, 0));
panelBotonesCifras.add(pcc.btnDeshacer);
panelBotonesCifras.add(pc.btnLimpiar);
panelBotonesCifras.add(pc.btnResolver);

columna2Constraints.gridx = 0;
columna2Constraints.gridwidth = GridBagConstraints.REMAINDER;
Expand Down
12 changes: 6 additions & 6 deletions juegos/VisorLetras.java
Original file line number Diff line number Diff line change
Expand Up @@ -152,29 +152,29 @@ private JPanel crearPanelColumna1(GridBagLayout gridBagLayout) {
GridBagConstraints constraints = new GridBagConstraints();
constraints.insets = new Insets(5, 10, 5, 10);

// 2a fila (barra de progreso y botón de pausar/reanudar) (va antes de la primera en el código porque tiene
// propiedades especiales como el fill o weight)
// 2a fila (barra de progreso, botón de pausar/reanudar y checkbox de contrarreloj) (va antes de la primera en
// el código porque tiene propiedades especiales como el fill o weight)
constraints.gridy = 1;
constraints.fill = GridBagConstraints.HORIZONTAL;
constraints.weightx = 1;
columna1.add(letras.mostradorTiempo, constraints);

constraints.weightx = 0;
constraints.fill = GridBagConstraints.NONE; // Reiniciamos el valor de constraints fill al original
constraints.gridx = 1;
columna1.add(pc.btnPausa, constraints);
columna1.add(pc.chkContrarreloj, constraints);

// 1a fila (botones de nueva partida, resolver; checkbox de contrarreloj y selector de idioma)
// 1a fila (botones de nueva partida, resolver; checkboxes y selector de idioma)
JPanel panelBotonesGenerales = new JPanel(gridBagLayout);

GridBagConstraints botonesGeneralesConstraints = new GridBagConstraints();
botonesGeneralesConstraints.insets = new Insets(0, 10, 0, 10);

panelBotonesGenerales.add(pc.btnIniciar, botonesGeneralesConstraints);
panelBotonesGenerales.add(pc.btnResolver, botonesGeneralesConstraints);
panelBotonesGenerales.add(pc.chkContrarreloj, botonesGeneralesConstraints);
panelBotonesGenerales.add(pcl.panelIdioma, botonesGeneralesConstraints);
panelBotonesGenerales.add(pc.chkPreguntarAntesDeResolver, botonesGeneralesConstraints);
panelBotonesGenerales.add(pcl.chkAutoMemorizar, botonesGeneralesConstraints);
panelBotonesGenerales.add(pcl.panelIdioma, botonesGeneralesConstraints);

constraints.gridx = 0;
constraints.gridy = 0;
Expand Down

0 comments on commit 8fc2398

Please sign in to comment.