blooming8

Guess - Form

Jun 2nd, 2014
458
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 13.15 KB | None | 0 0
  1. package guess;
  2.  
  3. import java.util.Random;
  4. import javax.swing.JOptionPane;
  5.  
  6. public class Form extends javax.swing.JFrame {
  7.  
  8.     int prove, limite, random, min = 1, diff, num;
  9.     int last = 0, v = 30;
  10.     int[] usati = new int[v]; // numeri usati
  11.     boolean aiuto; // boolean per attivare l'aiuto
  12.     Random rand = new Random(); // oggetto di generatore random
  13.  
  14.     public Form() {
  15.         initComponents();
  16.     }
  17.  
  18. private void RandomButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
  19.         OkTxt.grabFocus();
  20.         OkTxt.setText("");
  21.         diff = DiffCombo.getSelectedIndex();
  22.         switch (diff) {
  23.             case 0:
  24.                 UsatiTitleLbl.setText("");
  25.                 UsatiLbl2.setText("");
  26.                 DiffLbl.setText("<html><b><u>SEMPLICE</b></u><br><br>Numero massimo: 10</html>");
  27.                 prove = 5;
  28.                 limite = 10;
  29.                 ProveLbl.setText(prove + " tentativi rimanenti");
  30.                 break;
  31.             case 1:
  32.                 UsatiTitleLbl.setText("");
  33.                 UsatiLbl2.setText("");
  34.                 DiffLbl.setText("<html><b><u>VETERANO</b></u><br><br>Numero massimo: 20</html>");
  35.                 prove = 8;
  36.                 limite = 21;
  37.                 aiuto = true;
  38.                 ProveLbl.setText(prove + " tentativi rimanenti");
  39.                 break;
  40.             case 2:
  41.                 UsatiTitleLbl.setText("");
  42.                 UsatiLbl2.setText("");
  43.                 DiffLbl.setText("<html><b><u>TRAGICO</b></u><br><br>Numero massimo: 30</html>");
  44.                 prove = 5;
  45.                 limite = 31;
  46.                 aiuto = true;
  47.                 ProveLbl.setText(prove + " tentativi rimanenti");
  48.                 break;
  49.             case 3:
  50.                 UsatiTitleLbl.setText("");
  51.                 UsatiLbl2.setText("");
  52.                 OutputLbl.setText("<html><i>Difficoltà casuale!</i></html>");
  53.                 diff = rand.nextInt(3) + 1;
  54.                 switch (diff) {
  55.                     case 1:
  56.                         UsatiTitleLbl.setText("");
  57.                         UsatiLbl2.setText("");
  58.                         DiffLbl.setText("<html><b><u>SEMPLICE</b></u><br><br>Numero massimo: 10</html>");
  59.                         diff = 0;
  60.                         prove = 5;
  61.                         limite = 10;
  62.                         ProveLbl.setText(prove + " tentativi rimanenti");
  63.                         break;
  64.                     case 2:
  65.                         UsatiTitleLbl.setText("");
  66.                         UsatiLbl2.setText("");
  67.                         aiuto = true;
  68.                         DiffLbl.setText("<html><b><u>VETERANO</b></u><br><br>Numero massimo: 20</html>");
  69.                         diff = 1;
  70.                         prove = 8;
  71.                         limite = 21;
  72.                         ProveLbl.setText(prove + " tentativi rimanenti");
  73.                         break;
  74.                     case 3:
  75.                         UsatiTitleLbl.setText("");
  76.                         UsatiLbl2.setText("");
  77.                         aiuto = true;
  78.                         DiffLbl.setText("<html><b><u>TRAGICO</b></u><br><br>Numero massimo: 30</html>");
  79.                         diff = 2;
  80.                         prove = 5;
  81.                         limite = 31;
  82.                         ProveLbl.setText(prove + " tentativi rimanenti");
  83.                         break;
  84.                 }
  85.                 break;
  86.             case 4:
  87.                 UsatiTitleLbl.setText("");
  88.                 UsatiLbl2.setText("");
  89.                 String strmin = JOptionPane.showInputDialog(null, "L'inizio dell'intervallo:", "SELEZIONA...", JOptionPane.QUESTION_MESSAGE);
  90.                 min = Integer.parseInt(strmin);
  91.  
  92.                 String strlim = JOptionPane.showInputDialog(null, "Il numero limite dell'intervallo:", "SELEZIONA...", JOptionPane.QUESTION_MESSAGE);
  93.                 limite = Integer.parseInt(strlim);
  94.  
  95.                 String strprove = JOptionPane.showInputDialog(null, "Il numero di prove che vuoi avere:", "SELEZIONA...", JOptionPane.QUESTION_MESSAGE);
  96.                 prove = Integer.parseInt(strprove);
  97.  
  98.                 if (prove <= 0) {
  99.                     do {
  100.                         strprove = JOptionPane.showInputDialog(null, "Non ha senso!", "ERRORE", JOptionPane.ERROR_MESSAGE);
  101.                         prove = Integer.parseInt(strprove);
  102.                     } while (prove <= 0);
  103.                 } else if (prove >= 1 && prove <= 3) {
  104.                     aiuto = false; // Se l'utente inserisce 3 prove, non avrebbe senso attivare l'aiuto
  105.                 } else {
  106.                     int HelpOn = JOptionPane.showConfirmDialog(null, "Desideri attivare l'aiuto?", "SELEZIONE AIUTO", JOptionPane.YES_NO_OPTION);
  107.                     if (HelpOn == JOptionPane.YES_OPTION) {
  108.                         aiuto = true;
  109.                         prove -= 3;
  110.                         ProveLbl.setText(prove + " tentativi rimanenti");
  111.                     } else {
  112.                         aiuto = false;
  113.                     }
  114.                 }
  115.                 DiffLbl.setText("<html><b><u>PERSONALIZZATA</b></u><br><br>Numero minimo: " + min + "<br> Numero massimo: " + limite + "</html>");
  116.                 ProveLbl.setText(prove + " tentativi rimanenti");
  117.                 break;
  118.         }
  119.  
  120.         random = min + rand.nextInt(limite - min + 1); // genera numero
  121.         OutputLbl.setText("<html><i>Numero generato!</i></html>");
  122.  
  123.         // abilita gli oggetti disabilitati all'inizio
  124.         InputLbl.setEnabled(true);
  125.         OkTxt.setEnabled(true);
  126.         OkButton.setEnabled(true);
  127.     }                                            
  128.  
  129.     private void EsciButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
  130.         JOptionPane.showMessageDialog(null, "A presto!", "BYE", JOptionPane.PLAIN_MESSAGE);
  131.         System.exit(0);
  132.     }                                          
  133.  
  134.     private void DiffComboActionPerformed(java.awt.event.ActionEvent evt) {                                          
  135.     }                                        
  136.  
  137.     private void OkButtonActionPerformed(java.awt.event.ActionEvent evt) {                                        
  138.         OkButton.setEnabled(true);
  139.         OkTxt.setEnabled(true);
  140.         InputLbl.setEnabled(true);
  141.  
  142.         if (Check.isNumeric(OkTxt.getText())) { // Funzione di controllo di Pautasso
  143.             num = Integer.parseInt(OkTxt.getText());
  144.             if (num == random) { // se l'utente vince
  145.                 OutputLbl.setText("<html><b><i>Complimenti, hai vinto! Il numero era proprio " + random + "!</i></b></html>");
  146.                 OkTxt.setEnabled(false);
  147.                 OkButton.setEnabled(false);
  148.                 InputLbl.setEnabled(false);
  149.                 // se l'utente inserisce fuori intervallo
  150.             } else if (diff == 4 && num < min) {
  151.                 JOptionPane.showMessageDialog(null, "Il numero minimo è " + min, "ERRORE", JOptionPane.ERROR_MESSAGE);
  152.                 OkTxt.setText("");
  153.             } else if (diff == 4 && num > limite) {
  154.                 JOptionPane.showMessageDialog(null, "Il numero massimo è " + limite, "ERRORE", JOptionPane.ERROR_MESSAGE);
  155.                 OkTxt.setText("");
  156.             } else if (diff == 0 && num > 10) {
  157.                 JOptionPane.showMessageDialog(null, "Il numero massimo è 10!", "ERRORE", JOptionPane.ERROR_MESSAGE);
  158.                 OkTxt.setText("");
  159.             } else if (diff == 1 && num > 20) {
  160.                 JOptionPane.showMessageDialog(null, "Il numero massimo è 20!", "ERRORE", JOptionPane.ERROR_MESSAGE);
  161.                 OkTxt.setText("");
  162.             } else if (diff == 2 && num > 30) {
  163.                 JOptionPane.showMessageDialog(null, "Il numero massimo è 30!", "ERRORE", JOptionPane.ERROR_MESSAGE);
  164.                 OkTxt.setText("");
  165.             } else if ((diff == 1 && diff == 2 && diff == 3) || num <= 0) {
  166.                 JOptionPane.showMessageDialog(null, "Il numero minimo è 1!", "ERRORE", JOptionPane.ERROR_MESSAGE);
  167.                 OkTxt.setText("");
  168.             } else {
  169.                 prove--; // numero sbagliato, meno un tentativo
  170.                 if (prove == 1) {
  171.                     ProveLbl.setText("1 tentativo rimanente");
  172.                 } else if (prove <= 0) { // caso sicuro di perdita
  173.                     OutputLbl.setText("<html><i>Hai perso. Il numero era " + random + ".</i></html>");
  174.                     ProveLbl.setText("<html><s>Tentativi esauriti</s></html>");
  175.                     OkButton.setEnabled(false);
  176.                     OkTxt.setEnabled(false);
  177.                     InputLbl.setEnabled(false);
  178.                 } else {
  179.                     ProveLbl.setText(prove + " tentativi rimanenti");
  180.                 }
  181.  
  182.                 usati[last] = num;
  183.                 last++;
  184.  
  185.                 // stampa dei numeri usati
  186.                 UsatiTitleLbl.setText("Numeri usati:");
  187.                 UsatiLbl2.setText(UsatiLbl2.getText() + num + " | ");
  188.             }
  189.         } else {
  190.             JOptionPane.showMessageDialog(null, "Inserisci un numero valido!", "ERRORE", JOptionPane.ERROR_MESSAGE);
  191.         }
  192.         OkTxt.setText("");
  193.         OkTxt.grabFocus();
  194.     }                                        
  195.  
  196.     private void ResetButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
  197.         // resetta tutto
  198.         aiuto = false;
  199.         DiffCombo.setSelectedIndex(0);
  200.         OutputLbl.setText("");
  201.         DiffLbl.setText("");
  202.         ProveLbl.setText("");
  203.         OkTxt.setText("");
  204.         UsatiTitleLbl.setText("");
  205.         UsatiLbl2.setText("");
  206.         OkTxt.setEnabled(false);
  207.         OkButton.setEnabled(false);
  208.         InputLbl.setEnabled(false);
  209.     }                                          
  210.  
  211.     private void AiutoButtonActionPerformed(java.awt.event.ActionEvent evt) {                                            
  212.         if (aiuto == true && prove > 3) {
  213.             int indexHelp = rand.nextInt(3) + 1; // genera un aiuto casuale
  214.             int help = JOptionPane.showConfirmDialog(null, "Hai diritto ad un aiuto casuale, ma ti verrà a costare 3 tentativi! Vuoi continuare?", "AIUTO", JOptionPane.YES_NO_OPTION);
  215.             if (help == JOptionPane.YES_OPTION) {
  216.                 aiuto = false;
  217.                 prove -= 3;
  218.                 ProveLbl.setText(prove + " tentativi rimasti");
  219.                 switch (indexHelp) {
  220.                     case 1: // Numero PRIMO || NON PRIMO
  221.                         int div = 2;
  222.                         boolean primo = true;
  223.                         if (random % div == 0) {
  224.                             primo = false;
  225.                         }
  226.                         div++;
  227.                         if (primo) {
  228.                             OutputLbl.setText("<html><i>(Numero primo)</i></html>");
  229.                         } else {
  230.                             OutputLbl.setText("<html><i>(Numero non primo)</i></html>");
  231.                         }
  232.                         break;
  233.                     case 2: // Numero PARI || DISPARI
  234.                         if (random % 2 == 0) {
  235.                             OutputLbl.setText("<html><i>(Il numero è pari)</i></html>");
  236.                         } else {
  237.                             OutputLbl.setText("<html><i>(Il numero è dispari)</i></html>");
  238.                         }
  239.                         break;
  240.                     case 3: // "Numero compreso tra ... e ..."
  241.                         if (random >= 0 && random <= 5) {
  242.                             OutputLbl.setText("<html><i>(Numero compreso tra 0 e 5)</i></html>");
  243.                         } else if (random >= 5 && random <= 10) {
  244.                             OutputLbl.setText("<html><i>(Numero compreso tra 5 e 10)</i></html>");
  245.                         } else if (random >= 10 && random <= 20) {
  246.                             OutputLbl.setText("<html><i>(Numero compreso tra 10 e 20)</i></html>");
  247.                         } else {
  248.                             OutputLbl.setText("<html><i>(Numero compreso tra 20 e 30)</i></html>");
  249.                         }
  250.                         break;
  251.                 }
  252.             }
  253.         } else {
  254.             JOptionPane.showMessageDialog(null, "Non puoi attivare l'aiuto!", "ERRORE", JOptionPane.ERROR_MESSAGE);
  255.             OkTxt.grabFocus();
  256.         }
  257.     }                                          
  258.  
  259.     // Variables declaration - do not modify                    
  260.     private javax.swing.JButton AiutoButton;
  261.     private javax.swing.JComboBox DiffCombo;
  262.     private javax.swing.JLabel DiffLbl;
  263.     private javax.swing.JLabel DiffTitleLbl;
  264.     private javax.swing.JButton EsciButton;
  265.     private javax.swing.JLabel InputLbl;
  266.     private javax.swing.JLabel InsLbl;
  267.     private javax.swing.JButton OkButton;
  268.     public javax.swing.JTextField OkTxt;
  269.     private javax.swing.JLabel OutputLbl;
  270.     private javax.swing.JLabel ProveLbl;
  271.     private javax.swing.JButton RandomButton;
  272.     private javax.swing.JButton ResetButton;
  273.     private javax.swing.JLabel UsatiLbl2;
  274.     private javax.swing.JLabel UsatiTitleLbl;
  275.     // End of variables declaration                  
  276. }
Advertisement
Add Comment
Please, Sign In to add comment