【JAVA】简单程序实现人机对抗:剪刀石头布
目录
1.程序要求
2.代码思路
3.代码及运行结果
1.程序要求
写一个简单程序来实现用户与电脑玩剪刀石头布游戏,该程序先随机生成一个数字0、1或2,分别代表剪刀,石头,布。该程序提示用户输入0,1或2,如果输入错误,则提示非法输入,请重再试一次,如果通过,则并显示一条消息,告知用户和计算机得分情况,先赢了三局的一方获得总胜利。(BO5了属于是)
2.
在while循环中来实现要求,每次循环开始先设置随机函数,给电脑生成0,1或2其中一个数字,然后用Scanner类,将用户输入流保存,用一个if判断输入是否合法,再通过switch来判断用户与电脑的比赛情况,对于分数,可以设置两个变量:用户得分,电脑得分,当有一方超过2分,则结束while循环,告知最终结果。
3.
import java.util.Scanner;
public class scissor_rock_paper{public static void main(String[] args){int compWinN = 0;//Computer scoreint peoWinN = 0;//User scoreScanner input = new Scanner(System.in);System.out.println("************Game start!************");while(peoWinN<=2&&compWinN<=2) {// Computer selectingint comp = (int) (Math.random() * 3);// If input value is illegalif (input.hasNextInt() == false) {System.out.println("Your input is illegal.");break;}// People selectingint user=input.nextInt();System.out.println("scissor (0), rock (1), paper (2):" + user);//Judge the scoreswitch (user) {case 0:if (comp == 0) {System.out.println("The computer is scissor. You are scissor.(computer:" + compWinN + " you:" + peoWinN + ")");break;} else if (comp == 1) {compWinN++;System.out.println("The computer is rock. You are scissor.(computer:" + compWinN + " you:" + peoWinN + ")");break;} else if (comp == 2) {peoWinN++;System.out.println("The computer is paper. You are scissor.(computer:" + compWinN + " you:" + peoWinN + ")");break;}case 1:if (comp == 0) {peoWinN++;System.out.println("The computer is scissor. You are rock.(computer:" + compWinN + " you:" + peoWinN + ")");break;} else if (comp == 1) {System.out.println("The computer is rock. You are rock.(computer:" + compWinN + " you:" + peoWinN + ")");break;} else if (comp == 2) {compWinN++;System.out.println("The computer is paper. You are rock.(computer:" + compWinN + " you:" + peoWinN + ")");break;}case 2:if (comp == 0) {compWinN++;System.out.println("The computer is scissor. You are paper.(computer:" + compWinN + " you:" + peoWinN + ")");break;} else if (comp == 1) {peoWinN++;System.out.println("The computer is rock. You are paper.(computer:" + compWinN + " you:" + peoWinN + ")");break;} else if (comp == 2) {System.out.println("The computer is paper. You are paper.(computer:" + compWinN + " you:" + peoWinN + ")");break;}}}// Judge who wins the game&&Print the intermediate resultif(peoWinN > 2)System.out.print("You won!");else if (compWinN>2)System.out.print("Computer won!");else {System.out.println("Please try again.");}input.close();}
}
总结: 用了很笨但直接的方法,虽然运行结果还算满意,但是可以改进的地方还很多(笑),代码太过繁琐,不够简便,算是给各位提供一个思路吧, 大家有想分享的或是提意见,都可以在评论底下提出~
【JAVA】简单程序实现人机对抗:剪刀石头布相关推荐
- 图形识别-基于opencv+java简单程序
前言:如需转载请注明出处: 图形识别-基于opencv+java简单程序_x业精于勤x的博客-CSDN博客 OpenCV的 全称是:Open Source Computer Vision Librar ...
- java简单程序彩票系统!
彩票系统 红区:取值范围1–35 5个 蓝取:取值范围1–12 2个 一注彩票的号码不能有重复的 功能: 1.购买:手动输入彩票号码 判断是否中奖 2.随机:让电脑自动生成 可以手动选择随机多少注 3 ...
- Java小程序——简单五子棋(人机对战)
有关五子棋人人对战的代码,以及其他一些我想说的话请参考 Java小程序 -- 简单五子棋_如切如磋,如琢如磨-CSDN博客_java小程序 由于某些原因,这里我给出的AI算法算是比较简单的,所以导致了 ...
- 扑克牌游戏程序——人机对抗
编写扑克牌游戏程序,初步设定玩家是人机对抗,每人各抓12张牌,游戏规则是每次只能出一张牌,投骰子决定谁先出牌.点数大的管住点数小的.如果管不住对方时就不出牌,让对方出牌.先出完牌的一方为赢.权值大小规 ...
- java拳皇地下城_拳皇(Java简单的小程序)代码实例
刚开始学习Java,看完老九君的视频根据他的内容敲的代码,感觉还挺有成就感的,毕竟刚学习Java. package helloasd;import java.util.*; public class ...
- JAVA拳皇_拳皇(Java简单的小程序)代码实例|chu
刚开始学习Java,看完老九君的视频根据他的内容敲的代码,感觉还挺有成就感的,毕竟刚学习Java. package helloasd;import java.util.*; public class ...
- java简单密码验证程序
java简单密码验证程序 package demo01;import java.util.Scanner;/*** java模拟密码验证问题* 从键盘上录入6位密码,验证密码是不是6位,如果不是6位提 ...
- java程序设计简单程序分类_3 Java的基本程序设计结构
3.1 一个简单的Java应用程序 public classFirstSample {public static voidmain(String[] args) { System.out.printl ...
- 简单Java小程序----有界面ATM机
继<简单Java小程序---无界面ATM机>以后,尝试对有界面ATM机改写,对面向对象的了解又深了一层! 桌面的创建过程 由于使用的NetBean软件没有提供专用的控件拖拽使用 ...
最新文章
- Win10命令行激活 电脑组装
- Oracle 11g r2 安装
- 提升vector性能的几个技巧
- horizon client长时间不操作不断开_动挡操作禁忌,伤车只在一瞬间!否则变速箱会提前...
- 华为 android9 信任app_搭载麒麟810处理器,华为Nova5i Pro的AI跑分创新高
- 开启进度比的文本为什么没有显示_没有开通智钻,为什么会显示流量是在智钻进店的呢?...
- linux 下清空回收站命令
- golang java rpc_golang两种调用rpc的方法
- Python的Request请求跳过认证及禁用警告
- 华为Mate 20 X(5G)评测:6199元的5G双模旗舰手机
- 中国农业工作服行业市场供需与战略研究报告
- 【跃迁之路】【736天】程序员高效学习方法论探索系列(实验阶段493-2019.2.26)...
- pin码计算器网页版_PIN码计算锦集
- linux 脚本加密 shc
- 阿泰,水晶报表--pull模式样板
- python中英文字母和中文汉字所占的字节
- unity3d的Animation 动画播放器的基本API
- 美食杰项目-登录注册
- 基于浏览器的http普通请求与ajax请求
- Rmarkdown直觉以及常用katex语法
热门文章
- 解决Module not specified问题
- 【IOT】阿里开放平台区别:Link Develop平台、飞燕平台、物联网平台
- 再读苹果《Threading Programming Guide》笔记(二):线程配置与Run Loop
- 【翻译】Java中String, StringBuffer, StringBuilder的区别
- python的核心数据类型_核心数据类型--字符串
- Android7.1上报的CNEService/WbcService/LauncherUnreadService停止运行错误,拔掉电池重启开机几次才不报
- PropertyDescriptor 详解
- 2018年机器学习算法工程师求职经验搬运
- 【Cadence】psp or hbsp仿真设置
- 想学好Java,非常推荐浏览与收藏的7本经典书籍