java语言的科学与艺术-编程练习6.5

  1 /*
  2  * File:GambleMachine.java
  3  * ------------------------
  4  * 模拟“赌博机”
  5  */
  6 import acm.util.*;
  7 import acm.program.*;
  8 
  9 public class GambleMachine extends ConsoleProgram {
 10     public void run(){
 11         String ask = "Would you like to play? ";
 12         if(readLine("Would you like instructions? ").equals("yes")){
 13             println("BAR        BAR        BAR   -- YOU WILL WIN $250");
 14             println("BELL        BELL    BELL  -- YOU WILL WIN $20");
 15             println("................");/*介绍懒得写了*/
 16         }
 17         while(true){
 18             if(askQuestion()){
 19                 MONEY -= 1;
 20                 if(MONEY == 0) break;
 21                 oneTime();
 22             }else{
 23                 break;
 24             }
 25             
 26         }
 27         
 28     }
 29     /*
 30      * 进行询问是否继续。
 31      */
 32     private boolean askQuestion(){
 33         String list = "You have $" + MONEY + ". ";
 34         String ask = "Would you like to play? ";
 35         boolean result = false;
 36         if(readLine(list + ask).equals("yes")){
 37             result = true;
 38         }else{
 39             result = false;
 40         }
 41         return result;
 42     }
 43     /*
 44      * 执行一次赌博机
 45      * 如果获利,加上相应的MONEY。
 46      */
 47     private void oneTime(){
 48         int window1 = rgen.nextInt(1, 6);
 49         int window2 = rgen.nextInt(1, 6);
 50         int window3 = rgen.nextInt(1, 6);
 51         if(window1 == 6 && window2 == 6 && window3 == 6){
 52             println(listWin(window1) + "    " + listWin(window2) + "    " + listWin(window3) + "--    You win $250");
 53             MONEY += 250;
 54         } else if(window1 == 5 && window2 == 5 && window3 == 5){
 55             println(listWin(window1) + "    " + listWin(window2) + "    " + listWin(window3) + "--    You win $20");
 56             MONEY += 20;
 57         } else if(window1 == 5 && window2 == 5 && window3 == 6){
 58             println(listWin(window1) + "    " + listWin(window2) + "    " + listWin(window3) + "--    You win $20");
 59             MONEY += 20;
 60         } else if(window1 == 4 && window2 == 4 && window3 == 4){
 61             println(listWin(window1) + "    " + listWin(window2) + "    " + listWin(window3) + "--     You win $14");
 62             MONEY += 14;
 63         } else if(window1 == 4 && window2 == 4 && window3 == 6){
 64             println(listWin(window1) + "    " + listWin(window2) + "    " + listWin(window3) + "--     You win $14");
 65             MONEY += 14;
 66         } else if(window1 == 3 && window2 == 3 && window3 == 3){
 67             println(listWin(window1) + "    " + listWin(window2) + "    " + listWin(window3) + "--     You win $10");
 68             MONEY += 10;
 69         } else if(window1 == 3 && window2 == 3 && window3 == 6){
 70             println(listWin(window1) + "    " + listWin(window2) + "    " + listWin(window3) + "--     You win $10");
 71             MONEY += 10;
 72         } else if(window1 == 1 && window2 == 1 && window3 == 1){
 73             println(listWin(window1) + "    " + listWin(window2) + "    " + listWin(window3) + "--    You win $7");
 74             MONEY += 7;
 75         } else if(window1 == 1 && window2 == 1 && window3 != 1){
 76             println(listWin(window1) + "    " + listWin(window2) + "    " + listWin(window3) + "--    You win $5");
 77             MONEY += 5;
 78         } else if(window1 == 1 && window2 != 1 && window3 != 1){
 79             println(listWin(window1) + "    " + listWin(window2) + "    " + listWin(window3) + "-- You win $2");
 80             MONEY += 2;
 81         } else{
 82             println(listWin(window1) + "    " + listWin(window2) + "    " + listWin(window3) + "-- You lose");
 83         }
 84     }
 85     /*
 86      * 用于将随机数和赌博机结果对应。
 87      */
 88     private  String listWin(int n){
 89         String str = "";
 90         switch(n){
 91         case 1: str = "CHEERY"; break;
 92         case 2: str = "LEMON"; break;
 93         case 3: str = "ORANGE"; break;
 94         case 4: str = "PLUM"; break;
 95         case 5: str = "BELL"; break;
 96         case 6: str = "BAR"; break;
 97         }
 98         return str;
 99     }
100     /* Create an instance variable for the random number generator */
101     private RandomGenerator rgen = RandomGenerator.getInstance();
102     /* private constants */
103     private int MONEY = 50;
104 }

posted on 2012-12-11 11:47  mybluecode  阅读(218)  评论(0编辑  收藏  举报