Questo programma che ho realizzato in Java estrae un numero a caso compreso in uno specifico intervallo di numeri (MIN e MAX) e richiede all’utente di indovinare qual’è il numero dicendo ogni volta se il numero immesso dall’utente è più grande o più piccolo del numero estratto fino a quando l’utente non indovina:
Clicca qui per una migliore leggibilità del codice
import javax.swing.*; public class mathrandom { public static void main (String[] args) { //intervallo dei valori tra cui estrarre il numero casuale final int MAX=2; final int MIN=1; //numero inserito dall'utente int x; //numero scelto dal computer int numerocasuale; //la funzione Math.random() restituisce un double >=0.0 e <1.0 scelto casualmente //per ottenere un intero compreso tra MIN e MAX si opera (MAX+1)*Math.random() e si fa un cast su un int if (MIN==0) numerocasuale = (int)((MAX+1)*Math.random()); else numerocasuale = (int)((MAX)*Math.random()+MIN); do { x=Integer.parseInt(JOptionPane.showInputDialog("Indovina il numero che ho scelto compreso tra "+MIN+" e "+MAX)); //caso in cui il numero inserito esce dall'intervallo if ((x<MIN)||(x>MAX)) JOptionPane.showMessageDialog(null,"Sbagliato: devi scegliere un numero compreso tra "+MIN+" e "+MAX+"!"); else { //caso in cui il numero inserito è troppo grande if (x>numerocasuale) JOptionPane.showMessageDialog(null,"Sbagliato: scegli un numero piu' piccolo"); //caso in cui il numero inserito è troppo piccolo if (x<numerocasuale) JOptionPane.showMessageDialog(null,"Sbagliato: scegli un numero piu' grande"); } } while (x!=numerocasuale); //infine, se il numero viene indovinato JOptionPane.showMessageDialog(null,"Hai indovinato, era proprio "+numerocasuale+"!"); System.exit(0); } }