剪刀石头布java_基础1-2_面向对象_剪刀石头布(纯java)

游戏名:石头-剪刀-布

规则:用户根据系统提示出一个选项,而电脑随机生成一个选项,系统比较用户与电脑的选择,给出比较结果

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

下次再见!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值