PDA

Visualizza la versione completa : Gioco dei dadi CRAPS


luk_leroi
24-01-2003, 18:14
non capisco perchè quest'applet non parte...
la compilaziona va tutta ok..appena la apro con il browser mi dice applet Craps notinitied (premetto che non è un problema di impostazioni del browser perchè tutte le altre applets le apre tranquillamente...)

ecco il listato:



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Craps extends JApplet implements ActionListener {

final int VINCE = 0, PERDE = 1, CONTINUA = 2;


boolean primoTiro = true;
int sommaDadi=0;
int punti= 0;
int statoGioco = CONTINUA;
JLabel dado1Label,dado2Label,sommaLabel,punteggioLabel;
JTextField dado1,dado2,somma,punteggio;
JButton roll;


public void init()
{
Container c= getContentPane();
c.setLayout (new FlowLayout() );
dado1Label=new JLabel( "Dado 1 " );
c.add( dado1Label );
dado1=new JTextField( 10 );
dado1.setEditable( false );
c.add( dado2 );
dado2Label=new JLabel( "Dado 2" );
c.add( dado2Label );
dado2=new JTextField( 10 );
dado2.setEditable( false );
c.add(dado2);
sommaLabel=new JLabel( "Somma Dadi ");
c.add( sommaLabel );
somma=new JTextField( 10 );
somma.setEditable( false );
c.add( somma );
punteggioLabel= new JLabel( "Punteggio" );
c.add( punteggioLabel );
punteggio=new JTextField(10);
punteggio.setEditable( false );
c.add( punteggio );
roll= new JButton( "Lancia i Dadi" );
roll.addActionListener( this );
c.add( roll );
}

public void actionPerformed( ActionEvent e )
{
play();
}


public void play()
{
if (primoTiro) {
sommaDadi= tiraDadi();
switch ( sommaDadi ) {
case 7 : case 11:
statoGioco=VINCE;
punteggio.setText( "" );
break;
case 2: case 3: case 12:
statoGioco= PERDE;
punteggio.setText( "" );
break;
default:
statoGioco= CONTINUA;
punti=sommaDadi;
punteggio.setText( Integer.toString ( punti ) );
primoTiro= false;
break;
}
}
else
{
sommaDadi=tiraDadi();
if ( sommaDadi == punti )
statoGioco= VINCE;
else
if (sommaDadi == 7 )
statoGioco= PERDE;
}

if (statoGioco == CONTINUA )
showStatus ( " Tira ancora...");
else
{
if ( statoGioco == VINCE )
showStatus ( "Il giocatore vince!...click su Tira Dadi per giocare ancora..." );
else
showStatus ("Hai perso...click su Tira Dadi per giocare ancora..." );
primoTiro= true;
}
}


public int tiraDadi()
{
int d1,d2,tot;

d1 = 1 + ( int ) ( Math.random() * 6 );
d2 = 1 + ( int ) ( Math.random() * 6 );
tot= d1 + d2;
dado1.setText ( Integer.toString ( d1 ) );
dado2.setText ( Integer.toString ( d2 ) );
somma.setText ( Integer.toString ( tot ) );
return tot;

}
}



grazie

lelefante
24-01-2003, 19:32
public void init() {
Container c= getContentPane();
c.setLayout (new FlowLayout() );
dado1Label=new JLabel( "Dado 1 " );
c.add( dado1Label );
dado1=new JTextField( 10 );
dado1.setEditable( false );
c.add( dado2 ); /*ERRORE, forse intendevi c.add(dado1);*/
.
.
.
}


Cosi' funziona. Invece di caricarla nel browser, usa appletviewer, cosi' puoi vedere le eccezioni che vengono lanciate.

Loading