Java控制台实现猜拳游戏
作者:一本正经小崽崽 发布时间:2022-12-15 09:54:46
标签: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();
}
}
来源:https://blog.csdn.net/weixin_45573289/article/details/112750882


猜你喜欢
- 布局布局效果如下,下面每个“网格”都是一个按钮,点击按钮,就会有相应的事件发生。由于UniformG
- 在C#程序开发过程中,很多时候可能需要将字符串根据特定的分割字符分割成字符或者List集合,例如根据逗号将字符串分割为数组,或者根据竖线将字
- 前言:SpringBoot版本 : 2.2.6mybatis-generator-maven-plugin版本: 1.4.0plugin 使
- 在 C语言中,占位符是一种用于格式化输出的特殊字符,通常用于 printf() 等输出函数中,用于指定输出的格式和内容。在本文中,我们将详细
- 使用DOM4J方式生成XML文件的步骤如下:引入JAR包通过DocumentHelper类的createDocument()创建Docume
- 一、背景在开发过程中,我们的软件会面对不同的运行环境,比如开发环境、测试环境、生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比
- 本文介绍了AndroidStudio3.0开发调试安卓NDK的C++代码,分享给大家,具有如下:一、新建项目新建项目,没有发现Include
- 因为在Action的execute方法声明时就抛出了Exception异常,所以我们无需再execute方法中捕捉异常,仅需在struts.
- 最近发现Java原生的Zip压缩组件在压缩过程中,不支持文件名的中文编码,会在压缩过程中把中文文件名变成乱码。Apache的ant包中的压缩
- 我们经常在项目开放中需要进行很多配置, 那么这些配置基本上都是动态的, 如果我直接写在代码中, 修改起来很麻烦, 如果该配置在多处进行引用啦
- 本文实例讲述了Android string.xml中的替换方法。分享给大家供大家参考,具体如下:在android的开发中,经常会遇见一句话,
- static关键字在Java中,static是静态修饰关键字。用于修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性
- 目录启动startServiceAMS的创建start()setSystemProcess后续goingCallBackstartHomeO
- 本文实例讲述了Android亮屏和熄屏控制实现方法。分享给大家供大家参考,具体如下:一、概述我们的Android应用程序很多需要和亮屏和熄屏
- 1.MyBatisX插件在使用mybatis或者mybatis-plus时,我们可以安装IDEA的MyBatis的插件 - MyBatisX
- 本文实例讲解了java实现http的Post、Get、代理访问请求的详细代码片段,分享给大家供大家参考,具体内容如下package com.
- 一、插入排序算法实现java版本public static int[] insert_sort(int[] a){for (int i =
- 我们首先看下BASEJDBC的写法实例:package com.dao;import java.sql.Connection;import
- 为了防止用户或者测试MM疯狂的点击某个button,写个方法防止按钮连续点击。具体实例代码如下所示:public class B
- 导入maven依赖<!-- https://mvnrepository.com/artifact/com.fasterxml.jack