Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package guess;
- import java.util.Random;
- import javax.swing.JOptionPane;
- public class Form extends javax.swing.JFrame {
- int prove, limite, random, min = 1, diff, num;
- int last = 0, v = 30;
- int[] usati = new int[v]; // numeri usati
- boolean aiuto; // boolean per attivare l'aiuto
- Random rand = new Random(); // oggetto di generatore random
- public Form() {
- initComponents();
- }
- private void RandomButtonActionPerformed(java.awt.event.ActionEvent evt) {
- OkTxt.grabFocus();
- OkTxt.setText("");
- diff = DiffCombo.getSelectedIndex();
- switch (diff) {
- case 0:
- UsatiTitleLbl.setText("");
- UsatiLbl2.setText("");
- DiffLbl.setText("<html><b><u>SEMPLICE</b></u><br><br>Numero massimo: 10</html>");
- prove = 5;
- limite = 10;
- ProveLbl.setText(prove + " tentativi rimanenti");
- break;
- case 1:
- UsatiTitleLbl.setText("");
- UsatiLbl2.setText("");
- DiffLbl.setText("<html><b><u>VETERANO</b></u><br><br>Numero massimo: 20</html>");
- prove = 8;
- limite = 21;
- aiuto = true;
- ProveLbl.setText(prove + " tentativi rimanenti");
- break;
- case 2:
- UsatiTitleLbl.setText("");
- UsatiLbl2.setText("");
- DiffLbl.setText("<html><b><u>TRAGICO</b></u><br><br>Numero massimo: 30</html>");
- prove = 5;
- limite = 31;
- aiuto = true;
- ProveLbl.setText(prove + " tentativi rimanenti");
- break;
- case 3:
- UsatiTitleLbl.setText("");
- UsatiLbl2.setText("");
- OutputLbl.setText("<html><i>Difficoltà casuale!</i></html>");
- diff = rand.nextInt(3) + 1;
- switch (diff) {
- case 1:
- UsatiTitleLbl.setText("");
- UsatiLbl2.setText("");
- DiffLbl.setText("<html><b><u>SEMPLICE</b></u><br><br>Numero massimo: 10</html>");
- diff = 0;
- prove = 5;
- limite = 10;
- ProveLbl.setText(prove + " tentativi rimanenti");
- break;
- case 2:
- UsatiTitleLbl.setText("");
- UsatiLbl2.setText("");
- aiuto = true;
- DiffLbl.setText("<html><b><u>VETERANO</b></u><br><br>Numero massimo: 20</html>");
- diff = 1;
- prove = 8;
- limite = 21;
- ProveLbl.setText(prove + " tentativi rimanenti");
- break;
- case 3:
- UsatiTitleLbl.setText("");
- UsatiLbl2.setText("");
- aiuto = true;
- DiffLbl.setText("<html><b><u>TRAGICO</b></u><br><br>Numero massimo: 30</html>");
- diff = 2;
- prove = 5;
- limite = 31;
- ProveLbl.setText(prove + " tentativi rimanenti");
- break;
- }
- break;
- case 4:
- UsatiTitleLbl.setText("");
- UsatiLbl2.setText("");
- String strmin = JOptionPane.showInputDialog(null, "L'inizio dell'intervallo:", "SELEZIONA...", JOptionPane.QUESTION_MESSAGE);
- min = Integer.parseInt(strmin);
- String strlim = JOptionPane.showInputDialog(null, "Il numero limite dell'intervallo:", "SELEZIONA...", JOptionPane.QUESTION_MESSAGE);
- limite = Integer.parseInt(strlim);
- String strprove = JOptionPane.showInputDialog(null, "Il numero di prove che vuoi avere:", "SELEZIONA...", JOptionPane.QUESTION_MESSAGE);
- prove = Integer.parseInt(strprove);
- if (prove <= 0) {
- do {
- strprove = JOptionPane.showInputDialog(null, "Non ha senso!", "ERRORE", JOptionPane.ERROR_MESSAGE);
- prove = Integer.parseInt(strprove);
- } while (prove <= 0);
- } else if (prove >= 1 && prove <= 3) {
- aiuto = false; // Se l'utente inserisce 3 prove, non avrebbe senso attivare l'aiuto
- } else {
- int HelpOn = JOptionPane.showConfirmDialog(null, "Desideri attivare l'aiuto?", "SELEZIONE AIUTO", JOptionPane.YES_NO_OPTION);
- if (HelpOn == JOptionPane.YES_OPTION) {
- aiuto = true;
- prove -= 3;
- ProveLbl.setText(prove + " tentativi rimanenti");
- } else {
- aiuto = false;
- }
- }
- DiffLbl.setText("<html><b><u>PERSONALIZZATA</b></u><br><br>Numero minimo: " + min + "<br> Numero massimo: " + limite + "</html>");
- ProveLbl.setText(prove + " tentativi rimanenti");
- break;
- }
- random = min + rand.nextInt(limite - min + 1); // genera numero
- OutputLbl.setText("<html><i>Numero generato!</i></html>");
- // abilita gli oggetti disabilitati all'inizio
- InputLbl.setEnabled(true);
- OkTxt.setEnabled(true);
- OkButton.setEnabled(true);
- }
- private void EsciButtonActionPerformed(java.awt.event.ActionEvent evt) {
- JOptionPane.showMessageDialog(null, "A presto!", "BYE", JOptionPane.PLAIN_MESSAGE);
- System.exit(0);
- }
- private void DiffComboActionPerformed(java.awt.event.ActionEvent evt) {
- }
- private void OkButtonActionPerformed(java.awt.event.ActionEvent evt) {
- OkButton.setEnabled(true);
- OkTxt.setEnabled(true);
- InputLbl.setEnabled(true);
- if (Check.isNumeric(OkTxt.getText())) { // Funzione di controllo di Pautasso
- num = Integer.parseInt(OkTxt.getText());
- if (num == random) { // se l'utente vince
- OutputLbl.setText("<html><b><i>Complimenti, hai vinto! Il numero era proprio " + random + "!</i></b></html>");
- OkTxt.setEnabled(false);
- OkButton.setEnabled(false);
- InputLbl.setEnabled(false);
- // se l'utente inserisce fuori intervallo
- } else if (diff == 4 && num < min) {
- JOptionPane.showMessageDialog(null, "Il numero minimo è " + min, "ERRORE", JOptionPane.ERROR_MESSAGE);
- OkTxt.setText("");
- } else if (diff == 4 && num > limite) {
- JOptionPane.showMessageDialog(null, "Il numero massimo è " + limite, "ERRORE", JOptionPane.ERROR_MESSAGE);
- OkTxt.setText("");
- } else if (diff == 0 && num > 10) {
- JOptionPane.showMessageDialog(null, "Il numero massimo è 10!", "ERRORE", JOptionPane.ERROR_MESSAGE);
- OkTxt.setText("");
- } else if (diff == 1 && num > 20) {
- JOptionPane.showMessageDialog(null, "Il numero massimo è 20!", "ERRORE", JOptionPane.ERROR_MESSAGE);
- OkTxt.setText("");
- } else if (diff == 2 && num > 30) {
- JOptionPane.showMessageDialog(null, "Il numero massimo è 30!", "ERRORE", JOptionPane.ERROR_MESSAGE);
- OkTxt.setText("");
- } else if ((diff == 1 && diff == 2 && diff == 3) || num <= 0) {
- JOptionPane.showMessageDialog(null, "Il numero minimo è 1!", "ERRORE", JOptionPane.ERROR_MESSAGE);
- OkTxt.setText("");
- } else {
- prove--; // numero sbagliato, meno un tentativo
- if (prove == 1) {
- ProveLbl.setText("1 tentativo rimanente");
- } else if (prove <= 0) { // caso sicuro di perdita
- OutputLbl.setText("<html><i>Hai perso. Il numero era " + random + ".</i></html>");
- ProveLbl.setText("<html><s>Tentativi esauriti</s></html>");
- OkButton.setEnabled(false);
- OkTxt.setEnabled(false);
- InputLbl.setEnabled(false);
- } else {
- ProveLbl.setText(prove + " tentativi rimanenti");
- }
- usati[last] = num;
- last++;
- // stampa dei numeri usati
- UsatiTitleLbl.setText("Numeri usati:");
- UsatiLbl2.setText(UsatiLbl2.getText() + num + " | ");
- }
- } else {
- JOptionPane.showMessageDialog(null, "Inserisci un numero valido!", "ERRORE", JOptionPane.ERROR_MESSAGE);
- }
- OkTxt.setText("");
- OkTxt.grabFocus();
- }
- private void ResetButtonActionPerformed(java.awt.event.ActionEvent evt) {
- // resetta tutto
- aiuto = false;
- DiffCombo.setSelectedIndex(0);
- OutputLbl.setText("");
- DiffLbl.setText("");
- ProveLbl.setText("");
- OkTxt.setText("");
- UsatiTitleLbl.setText("");
- UsatiLbl2.setText("");
- OkTxt.setEnabled(false);
- OkButton.setEnabled(false);
- InputLbl.setEnabled(false);
- }
- private void AiutoButtonActionPerformed(java.awt.event.ActionEvent evt) {
- if (aiuto == true && prove > 3) {
- int indexHelp = rand.nextInt(3) + 1; // genera un aiuto casuale
- 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);
- if (help == JOptionPane.YES_OPTION) {
- aiuto = false;
- prove -= 3;
- ProveLbl.setText(prove + " tentativi rimasti");
- switch (indexHelp) {
- case 1: // Numero PRIMO || NON PRIMO
- int div = 2;
- boolean primo = true;
- if (random % div == 0) {
- primo = false;
- }
- div++;
- if (primo) {
- OutputLbl.setText("<html><i>(Numero primo)</i></html>");
- } else {
- OutputLbl.setText("<html><i>(Numero non primo)</i></html>");
- }
- break;
- case 2: // Numero PARI || DISPARI
- if (random % 2 == 0) {
- OutputLbl.setText("<html><i>(Il numero è pari)</i></html>");
- } else {
- OutputLbl.setText("<html><i>(Il numero è dispari)</i></html>");
- }
- break;
- case 3: // "Numero compreso tra ... e ..."
- if (random >= 0 && random <= 5) {
- OutputLbl.setText("<html><i>(Numero compreso tra 0 e 5)</i></html>");
- } else if (random >= 5 && random <= 10) {
- OutputLbl.setText("<html><i>(Numero compreso tra 5 e 10)</i></html>");
- } else if (random >= 10 && random <= 20) {
- OutputLbl.setText("<html><i>(Numero compreso tra 10 e 20)</i></html>");
- } else {
- OutputLbl.setText("<html><i>(Numero compreso tra 20 e 30)</i></html>");
- }
- break;
- }
- }
- } else {
- JOptionPane.showMessageDialog(null, "Non puoi attivare l'aiuto!", "ERRORE", JOptionPane.ERROR_MESSAGE);
- OkTxt.grabFocus();
- }
- }
- // Variables declaration - do not modify
- private javax.swing.JButton AiutoButton;
- private javax.swing.JComboBox DiffCombo;
- private javax.swing.JLabel DiffLbl;
- private javax.swing.JLabel DiffTitleLbl;
- private javax.swing.JButton EsciButton;
- private javax.swing.JLabel InputLbl;
- private javax.swing.JLabel InsLbl;
- private javax.swing.JButton OkButton;
- public javax.swing.JTextField OkTxt;
- private javax.swing.JLabel OutputLbl;
- private javax.swing.JLabel ProveLbl;
- private javax.swing.JButton RandomButton;
- private javax.swing.JButton ResetButton;
- private javax.swing.JLabel UsatiLbl2;
- private javax.swing.JLabel UsatiTitleLbl;
- // End of variables declaration
- }
Advertisement
Add Comment
Please, Sign In to add comment