public class Craps extends JApplet implements ActionListener
{
final int WON = 0, LOST = 1, CONTINUE = 2;
int iSomaDados = 0, iPontos = 0, iStatus = CONTINUE;
boolean firstRoll = true;
JLabel dado1Label, dado2Label, somaLabel, pontosLabel;
JTextField primeiroDado, segundoDado, soma, pontos;
JButton roll;
public void init()
{
Container c = getContentPane();
c.setLayout( new FlowLayout() );
dado1Label = new JLabel( "Dado 1" );
c.add( dado1Label );
primeiroDado = new JTextField( 10 );
primeiroDado.setEditable( false );
c.add( primeiroDado );
dado2Label = new JLabel( "Dado 2" );
c.add( dado2Label );
segundoDado = new JTextField( 10 );
segundoDado.setEditable( false );
c.add( segundoDado );
somaLabel = new JLabel( "Soma" );
c.add( somaLabel );
soma = new JTextField( 10 );
soma.setEditable( false );
c.add( soma );
pontosLabel = new JLabel( "Pontos" );
c.add( pontosLabel );
pontos = new JTextField( 10 );
pontos.setEditable( false );
c.add( pontos );
roll = new JButton( "Rolar Dado" );
roll.addActionListener( this );
c.add( roll );
}
public void ActionPerformed( ActionEvent e )
{
play();
}
public void play()
{
if ( firstRoll ) //primeira rolagem
{
iSomaDados = rollDice();
switch ( iSomaDados )
{
case 7: case 11:
iStatus = WON;
pontos.setText( "" );
break;
case 2: case 3: case 12:
iStatus = LOST;
pontos.setText( "" );
break;
default:
iStatus = CONTINUE;
iPontos = iSomaDados;
pontos.setText( Integer.toString( iPontos ) );
firstRoll = false;
break;
}
}
else //caso seja segunda rolagem
{
iSomaDados = rollDice();
if ( iSomaDados == iPontos )
iStatus = WON;
else
if ( iSomaDados == 7 )
iStatus = LOST;
}
if ( iStatus == CONTINUE )
showStatus( "Role de novo." );
else
{
if ( iStatus == WON )
showStatus( "Jogador ganha. Clique em Rolar Dado para jogar de novo." );
else
showStatus( "Jogardor perde. Clique em Rolar Dado para jogar de novo." ) ;
firstRoll = true;
}
}
public int rollDice()
{
int iDado1, iDado2, iSoma;
iDado1 = 1 + ( int ) ( Math.random() * 6 );
iDado2 = 1 + ( int ) ( Math.random() * 6 );
iSoma = iDado1 + iDado2;
primeiroDado.setText( Integer.toString( iDado1 ) );
segundoDado.setText( Integer.toString( iDado2 ) );
return iSoma;
}
Nephos, obrigado pela resposta, mas isso infelizmente não está funcionando.
Como pode reparar há outra classe muito parecida na mesma pasta e ele tem ActionListener e, quando compilo, ele não exige que a classe seja abstract. Isso só esta ocorrendo na classe Corrida
Basta adicionar o código a uma página HTML.
O HTMLConverter você utiliza apenas para gerar esse código.
A propósito…testei aqui e funcionou, inclusive com a alteração :