2021-02-02

-面向对象高级训练任务

通过控制台方式实现一个人机对战的猜拳游戏,
用户通过输入(1.剪刀 2.石头 3.布),机器随机生成(1.剪刀 2.石头 3.布)
胜者积分,
n 局以后通过积分的多少判定胜负。

import java.util.Scanner;

public class Game {//public class 类名 Game  定义 属性
	private int round;//总回合数
	private int scoreUser;//玩家分数
	private int scoreRobot;//电脑分数
	public Game(int round) {
		super();
		this.round = round;
		//因为构造方法中需要我们设置的仅有回合数,玩家和电脑分数由代码运行结果递加,所以要设置初始值0;
		scoreUser = 0;//
		scoreRobot = 0;
	}
	public int getRound() {
		return round;
	}
	public void setRound(int round) {
		this.round = round;
	}
	public int getScoreUser() {
		return scoreUser;
	}
	public void setScoreUser(int scoreUser) {
		this.scoreUser = scoreUser;
	}
	public int getScoreRobot() {
		return scoreRobot;
	}
	public void setScoreRobot(int scoreRobot) {
		this.scoreRobot = scoreRobot;
	}
	
	public void gameDetail() {// public void 类名 gameDetail 定义游戏猜拳方法
		Scanner input = new Scanner(System.in);
		System.out.println("猜拳游戏开始,游戏局数为:"+round+"局");
		int gameRound = 1;// 默认值 第一局
		while (gameRound<=round) {
			System.out.println();
			System.out.println("========当前为第"+gameRound+"局========");
			System.out.println("请输入数字:1---剪刀,2---石头,3---布");
			int userNumber = input.nextInt();//定义 玩家输入方法,数字 代表剪刀石头布;
			System.out.println();
			if(userNumber<0 || userNumber>3) {
				System.out.println("你输入的数字有误,请重新输入");
				continue;
			}
			System.out.println("玩家输入的是:");
			switch (userNumber) {
			case 1:
			System.out.println("剪刀");
			break;
			case 2:
				System.out.println("石头");
				break;
			case 3:
				System.out.println("布");
				break;
			}
			int robotNumber = (int)(Math.random()*3+1);//定义电脑输入方法,随机生成1,2,3 三个数字
			System.out.println("电脑输入的是:");
			switch (robotNumber) {
			case 1:
			System.out.println("剪刀");
			break;
			case 2:
				System.out.println("石头");
				break;
			case 3:
				System.out.println("布");
				break;
		   }
			if(userNumber == robotNumber) {
				System.out.println("平局");
				
				gameRound++;//回合加一
				
			}else if((userNumber ==1&&robotNumber ==2) ||( userNumber ==2&&robotNumber==3) || (userNumber==3&&robotNumber == 1)) {
				System.out.println("电脑赢,加一分");
				
				gameRound++;
				scoreRobot++;//电脑分数加一
			}else {
				System.out.println("玩家赢,加一分");
				
				gameRound++;
				scoreUser++;//玩家分数加一
			}
			System.out.println();
			System.out.println("当前比分为:"+"玩家:"+scoreUser+"分"+"        "+"电脑:"+scoreRobot+"分");
	   }
		if(scoreUser>scoreRobot) {//判断玩家和电脑的分数
			System.out.println("玩家获胜");
		}else if(scoreUser<scoreRobot) {
			System.out.println("电脑获胜");
		}else {
			System.out.println("平局");
		}
	}
}

调用方法测试:

public class GameTest {

	public static void main(String[] args) {
		Game test = new Game(5);
		test.gameDetail();
	}

}

输出结果如下:

猜拳游戏开始,游戏局数为:5========当前为第1========
请输入数字:1---剪刀,2---石头,3---1

玩家输入的是:
剪刀
电脑输入的是:
石头
电脑赢,加一分

当前比分为:玩家:0分        电脑:1========当前为第2========
请输入数字:1---剪刀,2---石头,3---2

玩家输入的是:
石头
电脑输入的是:
布
电脑赢,加一分

当前比分为:玩家:0分        电脑:2========当前为第3========
请输入数字:1---剪刀,2---石头,3---3

玩家输入的是:
布
电脑输入的是:
布
平局

当前比分为:玩家:0分        电脑:2========当前为第4========
请输入数字:1---剪刀,2---石头,3---4

你输入的数字有误,请重新输入

========当前为第4========
请输入数字:1---剪刀,2---石头,3---2

玩家输入的是:
石头
电脑输入的是:
布
电脑赢,加一分

当前比分为:玩家:0分        电脑:3========当前为第5========
请输入数字:1---剪刀,2---石头,3---1

玩家输入的是:
剪刀
电脑输入的是:
布
玩家赢,加一分

当前比分为:玩家:1分        电脑:3分
电脑获胜

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值