5.34(游戏:石头、剪刀、布)编程练习题3.17给出玩石头-剪刀-布游戏的程序。修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止

  • 题目
    • 题目概述
    • 编程练习题3.17
    • 破题
    • 运行示例

题目

题目概述

5.34(游戏:石头、剪刀、布)编程练习题3.17给出玩石头-剪刀-布游戏的程序。修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止

编程练习题3.17

点击这里快速跳转至3.17博文,或复制以下URL到浏览器:

https://blog.csdn.net/weixin_46356698/article/details/119810073

3.17详细代码:

import java.util.Scanner;public class Test3_17 {public static void main(String[] args) {// 电脑与人类产生石头剪刀布的代码int computer = (int)(Math.random()*3);Scanner input = new Scanner(System.in);System.out.println("rock(0), scissor(1), paper(2): ");int people = input.nextInt();// 判断人类输入是否合法if(people != 0 && people != 1 && people != 2){System.out.println("输入不合法");System.exit(1);}// 结果判断if(computer == 0 && people == 0)System.out.println("The computer is rock. You are rock too. It is a draw");if(computer == 0 && people == 1)System.out.println("The computer is rock. You are scissor. Computer won");if(computer == 0 && people == 2)System.out.println("The computer is rock. You are paper. You won");if(computer == 1 && people == 0)System.out.println("The computer is scissor. You are rock. You won");if(computer == 1 && people == 1)System.out.println("The computer is scissor. You are scissor too. It is a draw");if(computer == 1 && people == 2)System.out.println("The computer is scissor. You are paper. Computer won");if(computer == 2 && people == 0)System.out.println("The computer is paper. You are rock. Computer won");if(computer == 2 && people == 1)System.out.println("The computer is paper. You are scissor. You won");if(computer == 2 && people == 2)System.out.println("The computer is paper. You are paper too. It is a draw");}
}

破题

设置两个计数变量,分别计算用户、计算机胜利次数,当任意一个变量为3时,则结束游戏
所以在结果判断部分进行修改、整体增加循环控制语句即可

import java.util.Scanner;public class Test5_34 {public static void main(String[] args) {int computer_win = 0, people_win = 0;for (; ; ) {// 电脑与人类产生石头剪刀布的代码int computer = (int) (Math.random() * 3);Scanner input = new Scanner(System.in);System.out.println("rock(0), scissor(1), paper(2): ");int people = input.nextInt();// 判断人类输入是否合法if (people != 0 && people != 1 && people != 2) {System.out.println("输入不合法");}// 结果判断if (computer == 0 && people == 1)computer_win += 1;else if (computer == 0 && people == 2)people_win += 1;else if (computer == 1 && people == 0)people_win += 1;else if (computer == 1 && people == 2)computer_win += 1;else if (computer == 2 && people == 0)computer_win += 1;else if (computer == 2 && people == 1)people_win += 1;elseSystem.out.print("本局平手\t");// 输出当前比分并判断是否需要结束循环System.out.println("人类:计算机分数为:" + people_win + ":" + computer_win);if (computer_win == 3 || people_win == 3){String str = (computer_win == 3) ? "计算机胜" : "人类胜";System.out.println(str);return;}}}
}

运行示例

rock(0), scissor(1), paper(2):
1
人类:计算机分数为:1:0
rock(0), scissor(1), paper(2):
1
人类:计算机分数为:2:0
rock(0), scissor(1), paper(2):
1
人类:计算机分数为:2:1
rock(0), scissor(1), paper(2):
1
本局平手    人类:计算机分数为:2:1
rock(0), scissor(1), paper(2):
1
人类:计算机分数为:3:1
人类胜Process finished with exit code 0

Java黑皮书课后题第5章:**5.34(游戏:石头、剪刀、布)编程练习题3.17给出玩石头-剪刀-布游戏的程序。修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止相关推荐

  1. Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字

    Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...

  2. Java黑皮书课后题第3章:**3.27(几何:点是否在三角形内)假设一个平面上有一个直角三角形。编写程序,提示用户输入一个点的x坐标和y坐标,然后判断这个点是否在该三角形内

    **3.27(几何:点是否在三角形内)假设一个平面上有一个直角三角形.编写程序,提示用户输入一个点的x坐标和y坐标,然后判断这个点是否在该三角形内 题目 题目描述 破题 运行示例 代码 题目 题目描述 ...

  3. Java黑皮书课后题第10章:*10.16(被2或3整除)找出所有被2或3整除的有50个十进制位数的前10个数字

    10.16(被2或3整除)找出所有被2或3整除的有50个十进制位数的前10个数字 法一 破题 代码 运行结果 法二 破题 代码 运行结果 法一 破题 本题通过基本数据类型无解(求不出来,不是没有解) ...

  4. Java黑皮书课后题第10章:*10.10(Queue类)10.6节给出一个Stock类。设计一个名为Queue的类用于存储整数。像栈一样,队列保存元素。在栈中,元素后进先出。队列中元素先进先出

    10.10(Queue类)10.6节给出一个Stock类,设计一个名为Queue的类用于存储整数 题目 程序 破题 代码 Test10.java Test10_Queue.java UML 题目 程序 ...

  5. Java黑皮书课后题第7章:**7.24(仿真:优惠券收集问题)优惠券收集问题是一个经典的统计问题。编写程序,模拟要得到四张不同花色的牌所需要的选取次数,然后显示选中的四张牌

    **7.24(仿真:优惠券收集问题)优惠券收集问题是一个经典的统计问题.编写程序,模拟要得到四张不同花色的牌所需要的选取次数,然后显示选中的四张牌 题目 题目描述与运行示例 破题:花色与数字 代码 题 ...

  6. Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交。第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4)

    Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交.第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4) 题目 破题 ...

  7. Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类

    Java黑皮书课后题第9章:*9.11(代数:2*2的线性方程)为一个2*2的线性方程设计一个名为LinearEquation的类 题目 破题 代码 Test10 Test11_LinearEquat ...

  8. Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类

    Java黑皮书课后题第9章:*9.10(代数:二次方程式)为二次方程式设计一个名为QuadraticEquation的类 题目 破题 代码 Test10 Test10_QuadraticEquatio ...

  9. Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类

    Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...

最新文章

  1. FileChannel应用实例——本地文件读数据(假定文件已存在)
  2. python获取当前服务器ip_Python实现获取域名所用服务器的真实IP
  3. SQL Error: 957, SQLState: 42000 ORA-00957: duplicate column name
  4. 前端学习(1390):多人管理项目10服务器认证
  5. java期末试题c卷,JAVA程序设计期末考试试卷及参考答案
  6. Problem C: 01字串
  7. python字典进行大写转化_Python字典转换成小写?
  8. docker安装rabbitmq步骤
  9. linux 基本配置tab键和显示行号 和中文输入法
  10. 六行shell脚本实现Android手机自动刷抖音极速版
  11. 浏览器导航被劫持解决方法
  12. 文案馆头像壁纸小程序源码 带后台
  13. CSDN莫名其妙封号
  14. Autolayout - NSLayoutAnchor
  15. 计算机英语及教学法,计算机英语教学方法探析
  16. C# XML 与 String 互转
  17. 1199:全排列(dfs)
  18. Web Service 教程
  19. A-Level化学例题解析及练习(分子间作用力和沸点)
  20. Spring中的模板模式

热门文章

  1. dataframe第二列 r语言_R语言-数据框
  2. Apache 的管理及优化web
  3. P1141 01迷宫(BFS+记忆化)
  4. python实现人脸识别复杂么_人脸识别没有那么复杂,Python一行代码就可以办到
  5. Alibaba Cloud Linux 技术图谱首发,分享学习感言得大奖!
  6. 阿里云低延时直播RTS能力升级,让直播推流效果更佳
  7. Flink 必知必会:Flink Runtime Architecture
  8. Oracle 11g安装步骤
  9. 超全干货 | 软件测试岗技术笔试
  10. 18道经典MySQL面试题,祝您升职加薪