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) 编辑 收藏 举报