/**
 * @(#)Craps.java
 *
 * Sample Applet application
 *
 * @author 
 * @version 1.00 05/12/08
 */
 
import java.awt.*;
import java.applet.*;
 
public class Craps extends Applet {

    //public void paint(Graphics g) {
//g.drawString("Welcome to Java!!", 50, 60 );
final int WON=0,LOST=1,CONTINUE=2;

boolean firstroll=true;
int diesum=0;
int mypoint=0;
int gamestatus=CONTINUE;

Label die1label, die2label, sumlabel,pointlabel;
TextField firstdie,seconddie,sum,point;
Button roll;

public void init() {
die1label=new Label("die 1");
firstdie=new TextField(10);
firstdie.setEditable(false);
die2label=new Label("die 2");
seconddie=new TextField(10);
seconddie.setEditable(false);
sumlabel=new Label("sum is");
sum=new TextField(10);
sum.setEditable(false);
roll=new Button("roll dice");
pointlabel=new Label("point is");
point.setEditable(false);
point=new TextField(10);

add(die1label);
add(firstdie);
add(die2label);
add(seconddie);
add(sumlabel);
add(sum);
add(pointlabel);
add(point);
add(roll);
  }


    public void play(){
         if(firstroll){
          diesum=rollDice();
         
          switch(diesum){
          case 7: case 11:
             gamestatus=WON;
             point.setText("");
             firstroll=true;
             break;
          case 2: case 3: case 12:
             gamestatus=LOST;
             point.setText(""); 
             firstroll=true;
             break;
          default:
             gamestatus=CONTINUE;
             mypoint=diesum;
             point.setText(Integer.toString(mypoint));
             firstroll=false;
             break;     
          }
         }
         else{
          diesum=rollDice();
         
          if(diesum==mypoint)
             gamestatus=WON;
          else
             if(diesum==7)
             gamestatus=LOST;   
         }
    
    
     if(gamestatus==CONTINUE)
        showStatus("roll again.");
     else{
     if(gamestatus==WON)
        showStatus("player wins."+"click roll dice to play again.");
     else
        showStatus("player loses."+"click roll dice to play again.");   
         
         firstroll=true;   
         }   
    
 }
 public boolean action(Event e, Object o){
  play();
  return true;
 }
 int rollDice()
 {
  int die1, die2, worksum;
  die1=1+(int)(Math.random()*6);
  die2=1+(int)(Math.random()*6);
  worksum=die1+die2;
 
  firstdie.setText(Integer.toString(die1));
  seconddie.setText(Integer.toString(die2));
 
  return worksum;
 }
}

解决方案 »

  1.   

    //<applet code=Craps.class width=200 height=100></applet>
    import java.awt.*;
    import java.applet.*;
     
    public class Craps extends Applet {     //public void paint(Graphics g) {
    //g.drawString("Welcome to Java!!", 50, 60 );
    final int WON=0,LOST=1,CONTINUE=2;

    boolean firstroll=true;
    int diesum=0;
    int mypoint=0;
    int gamestatus=CONTINUE;

    Label die1label, die2label, sumlabel,pointlabel;
    TextField firstdie,seconddie,sum,point;
    Button roll;

    public void init() {
    die1label=new Label("die 1");
    firstdie=new TextField(10);
    firstdie.setEditable(false);
    die2label=new Label("die 2");
    seconddie=new TextField(10);
    seconddie.setEditable(false);
    sumlabel=new Label("sum is");
    sum=new TextField(10);
    sum.setEditable(false);
    roll=new Button("roll dice");
    pointlabel=new Label("point is");

    // 颠倒一下
    point=new TextField(10);
    point.setEditable(false);

    add(die1label);
    add(firstdie);
    add(die2label);
    add(seconddie);
    add(sumlabel);
    add(sum);
    add(pointlabel);
    add(point);
    add(roll);
      }


        public void play(){
             if(firstroll){
             diesum=rollDice();
             
             switch(diesum){
             case 7: case 11:
                gamestatus=WON;
                point.setText("");
                firstroll=true;
                break;
             case 2: case 3: case 12:
                gamestatus=LOST;
                point.setText(""); 
                firstroll=true;
                break;
             default:
                gamestatus=CONTINUE;
                mypoint=diesum;
                point.setText(Integer.toString(mypoint));
                firstroll=false;
                break;     
             }
             }
             else{
             diesum=rollDice();
             
             if(diesum==mypoint)
                gamestatus=WON;
             else
                if(diesum==7)
                gamestatus=LOST;   
             }
        
        
        if(gamestatus==CONTINUE)
           showStatus("roll again.");
        else{
        if(gamestatus==WON)
           showStatus("player wins."+"click roll dice to play again.");
        else
           showStatus("player loses."+"click roll dice to play again.");   
            
            firstroll=true;  
            }   
        
     }
     
     public boolean action(Event e, Object o){
      play();
      return true;
     }
     
     int rollDice()
     {
      int die1, die2, worksum;
      die1=1+(int)(Math.random()*6);
      die2=1+(int)(Math.random()*6);
      worksum=die1+die2;
     
      firstdie.setText(Integer.toString(die1));
      seconddie.setText(Integer.toString(die2));
     
      return worksum;
     }
    }运行:
    F:\>javac Craps.javaF:\>appletviewer Craps.java