游戏名:石头-剪刀-布
规则:用户根据系统提示出一个选项,而电脑随机生成一个选项,系统比较用户与电脑的选择,给出比较结果
Step1,控制台确定该流程。
1 packagegame.BO;2
3 importgame.UI.Joker;4 importgame.UI.Player;5 /*
6 * 假设:剪刀为1,石头为2,布为37 * 结果为三种情况:胜利、失败、平局8 * 获胜情况为(2,1)(3,2)(1,3) 结果相差1/1/-29 */
10 public classgameStart {11 public static voidmain(String[] args) {12 System.out.println("剪刀石头布开始!");13 Player computer =newPlayer();14 Player people =newPlayer();15 Joker jok =newJoker();16 computer.type=0;17 people.type=1;18 int peResult =people.play();19 int pcResult =computer.play();20 jok.compareSizes(peResult, pcResult);21 }22 }
Step2,构造对象
2-1:玩家对象
1 packagegame.UI;2
3 importjava.util.Random;4 importjava.util.Scanner;5
6 public classPlayer {7 intresult;8 public inttype;9
10 public intplay() {11 if (type == 1) {12 System.out.println("请出拳:");13 @SuppressWarnings("resource")14 Scanner sc = newScanner(System.in);15 String str =sc.nextLine();16 int peSize =Integer.parseInt(str);17 if (peSize == 1) {18 System.out.println("您出的是[拳头]!");19 } else if (peSize == 2) {20 System.out.println("你出的是[剪刀]!");21 } else if (peSize == 3) {22 System.out.println("你出的是[布布]!");23 }24 returnpeSize;25 } else{26 Random random = newRandom();27 //int temp= random.nextInt(3); 随机产生 0、1、2。但是我们想获取[1,2,3]
28 int pcSize = random.nextInt(3) + 1;29 if (pcSize == 1) {30 System.out.println("电脑出的是[拳头]!");31 } else if (pcSize == 2) {32 System.out.println("电脑出的是[剪刀]!");33 } else{34 System.out.println("电脑出的是[布布]!");35 }36 returnpcSize;37 }38
39 }40
41 }
2-1:裁判对象
packagegame.UI;public classJoker {public void compareSizes(int peSize,intpcSize){if((peSize - pcSize==1)||(pcSize-peSize==2)){
System.out.println("本局玩家赢!!!");
}else if((peSize - pcSize==2)||(pcSize-peSize==1)){
System.out.println("本局玩家输!!!");
}else if(peSize==pcSize){
System.out.println("本局双家平局!!!");
}
}
}
输出对象为:
剪刀石头布开始!
请出拳:
1
您出的是[拳头]!
电脑出的是[布布]!
本局玩家赢!!!
或者
剪刀石头布开始!
请出拳:
2
你出的是[剪刀]!
电脑出的是[剪刀]!
本局双家平局!!!
或者
剪刀石头布开始!
请出拳:
3
你出的是[布布]!
电脑出的是[拳头]!
本局玩家输!!!
每次出拳都要重新启动【java application】,有点麻烦。加入一个循环判断。
******************************************************************************************************
1 packagegame.BO;2
3 importjava.util.Scanner;4
5 importgame.UI.Joker;6 importgame.UI.Player;7
8 /*
9 * 假设:剪刀为1,石头为2,布为310 * 结果为三种情况:胜利、失败、平局11 * 获胜情况为(2,1)(3,2)(1,3) 结果相差1/1/-212 */
13 public classgameStart {14 public static voidmain(String[] args) {15 System.out.println("剪刀石头布开始!");16 Player computer = newPlayer();17 Player people = newPlayer();18 Joker jok = newJoker();19 computer.type = 0;20 people.type = 1;21 while (true) {22 int peResult =people.play();23 int pcResult =computer.play();24 jok.compareSizes(peResult, pcResult);25 System.out.println("是否继续游戏?请输入:");26 System.out.println("是/y/Y/yes/YES 否/n/N/no/NO");27 @SuppressWarnings("resource")28 Scanner sc = newScanner(System.in);29 String str =sc.nextLine();30 if (str.equals("是") || str.equals("y") || str.equals("Y")31 || str.equals("yes") || str.equals("YES")) {32
33 } else if (str.equals("否") || str.equals("n") || str.equals("N")34 || str.equals("no") || str.equals("NO")) {35 System.out.println("下次再见!!!");36 break;37 }38
39 }40
41 }42 }
剪刀石头布开始!
请出拳:
1
您出的是[拳头]!
电脑出的是[布布]!
本局玩家赢!!!
是否继续游戏?请输入:
是/y/Y/yes/YES 否/n/N/no/NO
y
请出拳:
1
您出的是[拳头]!
电脑出的是[拳头]!
本局双家平局!!!
是否继续游戏?请输入:
是/y/Y/yes/YES 否/n/N/no/NO
否
下次再见!!!