ok in questo modo ho ottenuto quello che volevo, ora devo fare in modo da eseguire più partite del gioco, dato che si tratta di una simulazione, cioè:
partita 1: avvia il timer, svolgi le varie fasi del gioco, arresta il timer
partita 2: riavvia il timer, svolgi le varie fasi del gioco, arresta il timer
... e cosi via
tutto ciò parte sempre alla pressione di un pulsante. Riporto il codice aggiornato:
codice:
/*classe interna che esegue la simulazione e calcola la probabilità teorica
quando si fa click su Start*/
Timer t;
class StartSimListener implements ActionListener{
public void actionPerformed(ActionEvent evt){
t=new Timer(3000,new GameStep());
t.start();
}
}
class GameStep implements ActionListener{
int stato;
int nPartite;
double p;
int nVittorie, nSconfitte;
public GameStep(){
stato=0;
nPartite=Integer.parseInt(jComboBox1.getSelectedItem().toString());
try{
p=Double.parseDouble(jTextField3.getText());
if (p<0.0 || p>1.0) throw new NumberFormatException();
}
catch(NumberFormatException e){
JOptionPane.showMessageDialog(null, "Il valore di p deve essere un numero reale compreso tra 0 e 1", "Errore", JOptionPane.ERROR_MESSAGE);
return;
}
nVittorie=0;
nSconfitte=0;
}
public void actionPerformed (ActionEvent evt){
double W; //variabile aleatoria uniforme in (0,1) per stabilire il valore di Y
int pVittorie,pSconfitte; //percentuale di vittorie e di sconfitte
double probVittoria, probSconfitta; //probabilità teorica di vittoria e di sconfitta
Random gen=new Random(); //generatore di numeri pseudo-casuali
switch (stato){
case 0:{.... stato=1}
...
dovrei utilizzare un ciclo for, ma cosa ci devo mettere all'interno?