Java控制台实现猜拳游戏
本文实例为大家分享了Java控制台实现猜拳游戏的具体代码,供大家参考,具体内容如下
1、目标
通过控制台实现一个人机对战的猜拳游戏,用户通过输入(1.剪刀 2.石头 3.布),机器随机生成(1.剪刀 2.石头 3.布),胜者积分,n 局以后通过积分的多少判定胜负。
2、源码
根据目标的要求,可以大概知道,我们需要的类有:
①一个用户类User,用于获得和存储用户的出拳;
②一个机器人的类Robot,用于随机生成机器人的出拳;
③一个Game类,是存放核心代码的类,用户和机器人的出拳在这里进行对比,对结果进行记录,最后输出结果;
④最后是一个调用各个方法的Guess类。
直接上代码:
User.java
import java.util.Scanner; public class User{ static Scanner input = new Scanner(System.in); int user = 0;//用户出拳 int score = 0;//用户积分 int num = 0;//对战局数 public int setUser(){ System.out.println("请输入:1.剪刀 2.石头 3.布"); user = input.nextInt(); if (user == 1){ System.out.println("用户出拳:剪刀"); }else if (user == 2){ System.out.println("用户出拳:石头"); }else if (user == 3){ System.out.println("用户出拳:布"); } return user; } }
Robot.java
import java.util.Random; public class Robot { int id = 0;//获得机器人的出手 int score = 0;//机器人的积分 //获得机器人的出拳 public int setId(){ Random random = new Random(); int r = random.nextInt(3); id = r + 1;//获取机器人随机出拳 if (id == 1){ System.out.println("机器人出拳:剪刀"); }else if (id == 2){ System.out.println("机器人出拳:石头"); }else if (id == 3){ System.out.println("机器人出拳:布"); } return id; } }
Game.java
import java.util.Scanner; public class Game { //对用户类和机器人类进行初始化 User user = new User(); Robot robot = new Robot(); public void GameStart() { //初始化界面 System.out.println("-------------欢迎进入猜拳游戏---------------"); System.out.println(); System.out.println("******************************************"); System.out.println("——————出拳规则:1.剪刀 2.石头 3.布——————————"); System.out.println("-------------》》》猜拳开始《《《------------"); System.out.println("-------------------------------------------"); Scanner input = new Scanner(System.in); //获得用户想要进行的对战次数 System.out.println("请输入对战局数:"); user.num = input.nextInt(); System.out.println("游戏开始"); int userFirst;//用户出拳 int robotFirst;//机器人出拳 for (int i = 0; i < user.num; i++) { //获取双方的出拳 userFirst = user.setUser(); robotFirst = robot.setId(); //判断胜负 if (userFirst == robotFirst) { System.out.println("结果:平局,不积分。"); } else if ((userFirst == 2 && robotFirst == 1) || (userFirst == 3 && robotFirst == 2)) { System.out.println("结果:你赢了,加一分!"); user.score++; } else { System.out.println("结果:你输了,机器人加一分。"); robot.score++; } } //显示结果 showResult(); } //输出对战结果 private void showResult() { //显示对战次数 System.out.println("------------------------------"); System.out.println("对战次数:" + user.num); //显示最终得分 System.out.println("\n姓名\t得分"); System.out.println("用户" + "\t" + user.score); System.out.println("机器人" + "\t" + robot.score + "\n"); //显示对战结果 int result = Result(); if (result == 1) { System.out.println("结果:打成平手。"); } else if (result == 2) { System.out.println("结果:恭喜你赢得对战!");//用户获胜 } else { System.out.println("结果:你输了,不气馁,下次再来");//计算机赢 } System.out.println("游戏结束"); System.out.println("--------------------------"); } //计算比赛结果 private int Result() { if (user.score == robot.score) { return 1; } else if (user.score > robot.score) { return 2; } else { return 3; } } }
Guess.java
public class Guess { public static void main(String[] args) { Game game = new Game(); //调用输出比赛结果的方法 game.GameStart(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Java中TreeSet、HashSet、Collection重写比较器的实现
比较器是一种可以对集合或数组中的元素按照自定义的方式进行排序的对象,本文主要介绍了Java中TreeSet、HashSet、Collection重写比较器的实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2023-08-08mybatis-plus3.0.1枚举返回为null解决办法
这篇文章主要介绍了mybatis-plus3.0.1枚举返回为null解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12501 Command "HELO" requires an argument问题的解决方法
换一个windows服务器,发现就没这样的问题,仅在一台Linux服务器上可以重现,直观感觉就是这台Linux服务器某些配置有问题2013-08-08基于ChatGPT+SpringBoot实现智能聊天AI机器人接口并上线至服务器的方法
ChatGPT是一款基于自然语言处理技术的聊天机器人,ChatGPT可以模拟真实的人类对话,并能够更贴近用户的需求,提供更有价值的服务,这篇文章主要介绍了基于ChatGPT+SpringBoot实现智能聊天AI机器人接口并上线至服务器,需要的朋友可以参考下2023-02-02
最新评论