人机交互,来和我猜拳吧!
用JAVA实现了一个简单的猜拳游戏,准备记录下来,算作是总结和回顾吧。程序运行结果如下:
1.首先你需要编写一个电脑的类,类中有一个记录获胜几次的成员变量,和一个出拳的方法(用取随机数字来表示电脑出拳),代码如下:
1 class Computer { 2 int count; 3 4 public int showFist() { 5 Random obj = new Random(); 6 // 利用Random类的nextInt()方法生成0-2之间的数 7 int number = obj.nextInt(3) + 1; 8 switch (number) { 9 case 1: 10 System.out.println("电脑出:石头"); 11 break; 12 case 2: 13 System.out.println("电脑出:剪刀"); 14 break; 15 case 3: 16 System.out.println("电脑出:布"); 17 break; 18 } 19 return number; 20 } 21 }
2.然后你需要一个和电脑玩耍的人,类中同样也是一个记录获胜的成员变量和一个出拳的方法(取控制台用户输入的数值作为你出拳),代码如下:
1 class Person { 2 int count; 3 4 public int showFist() { 5 Scanner input = new Scanner(System.in); 6 System.out.println("请出拳:1.石头 2.剪刀 3.布 0.退出"); 7 int number = input.nextInt(); 8 switch (number) { 9 case 1: 10 System.out.println("我出:石头"); 11 break; 12 case 2: 13 System.out.println("我出:剪刀"); 14 break; 15 case 3: 16 System.out.println("我出:布"); 17 break; 18 case 0: 19 break; 20 } 21 return number; 22 } 23 }
3.最后就是玩游戏的主体类,类中三个成员变量,分别是电脑、人、记录玩总次数,还有一个构造函数用来初始化电脑和人对象,一个判断输赢的方法,一个打印结果方法,代码如下:
1 public class FingerGuessing { 2 Person per; 3 Computer com; 4 int count; 5 6 public FingerGuessing() { 7 per = new Person(); 8 com = new Computer(); 9 count = 0; 10 } 11 12 public void gameBegin() { 13 System.out.println("==========猜拳小游戏=========="); 14 System.out.println("= 游戏规则:1.石头 2.剪刀 3.布 0.退出 ="); 15 System.out.println("==========================="); 16 int perno; 17 int comno; 18 do { 19 perno = per.showFist(); 20 if (perno == 0) { 21 showResult(); 22 break; 23 } 24 comno = com.showFist(); 25 if ((perno == comno)) { 26 System.out.println("平局\n"); 27 this.count++; 28 } else if ((perno - comno == -1) || (perno - comno == 2)) { 29 System.out.println("恭喜,你赢了!\n"); 30 per.count++; 31 this.count++; 32 } else { 33 System.out.println("很遗憾,你输了!\n"); 34 com.count++; 35 this.count++; 36 } 37 38 } while (perno != 0); 39 40 } 41 public void showResult() { 42 System.out.println("与电脑共较量<" + this.count + ">次;"); 43 System.out.println("玩家获胜<" + per.count + ">次;"); 44 System.out.println("电脑获胜<" + com.count + ">次;"); 45 System.out.println("平局<" + (this.count-per.count-com.count) + ">次;"); 46 } 47 48 public static void main(String[] args) { 49 FingerGuessing game = new FingerGuessing(); 50 game.gameBegin(); 51 } 52 }
这样猜拳小游戏就OK了,来,和我猜拳吧!
作者:Orson
出处:http://www.cnblogs.com/java-class/
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】
如果,您对我的博客内容感兴趣,请继续关注我的后续博客,我是【Orson】
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段
声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?