猜拳游戏

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

代码如下

电脑的特性

private String name;//私有化名字和分数
	private  int score=0;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getScore() {
		return score;
	}
	public void setScore() {
		score = 0;
	}
	Computer(String name){
		this.name = name;
	}
	//随机生成1-3的数
	public int guess() {
		int result = (int)(Math.random()*3+1);
		return result;			
	}
	public  void addScore() {
		score++;
	}

人的特性

private String name;
	private int score=0;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getScore() {
		return score;
	}
	public void setScore() {
		score=0;
	}
	Person(String name){
		this.name = name;
	}
	public int guess() {
		Scanner sc = new Scanner(System.in);
		System.out.println("请玩家输入猜拳 1、剪刀  2、石头  3、布");
		int result = sc.nextInt();
		return result;		
	}
	public  void addScore() {
		
		score++;
	}

主程序

public class Main {
	static String per = null;
	static String com = null;
	static Person q1 = new Person("玩家");
	static Computer q2 = new Computer("电脑");
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入轮数");
		int numbers = sc.nextInt();
		
		
		
		q1.setScore();//输入开始分数
		q2.setScore();
		int count = 1;//判断轮数
		boolean loop = true;
		while (loop) {
			int result = q1.guess();//玩家的操作
			int result1 = q2.guess();//电脑的操作
			count++;//记录玩了多少轮
			switch (result) {
				case 1:{
					per = "剪刀";
				}break;
				case 2:{
					per = "石头";
				}break;
				case 3:{
					per = "布";
				}break;
			}
			switch (result1) {
				case 1:{
					com = "剪刀";
				}break;
				case 2:{
					com = "石头";
				}break;
				case 3:{
					com = "布";
				}break;
			}
			juice();
			//退出本程序
			if(count==numbers) {
				loop = false;
			}
		}
		if(q1.getScore() == q2.getScore()) {
			System.out.println("本轮平手");
		}else if(q1.getScore() > q2.getScore()) {
			System.out.println("恭喜您获胜");
		}else if(q1.getScore() < q2.getScore()) {
			System.out.println("很遗憾,您失败了");
		}
	}
	//判断获胜的条件
	public static void juice() {
		if((per =="剪刀"&&com =="布")||(per =="石头"&&com =="剪刀")||(per =="布"&&com =="石头")) {			
			q1.addScore();
			System.out.println("本局您获胜");
		}
		if((com =="剪刀"&&per =="布")||(com =="石头"&&per =="剪刀")||(com =="布"&&per =="石头")) {			
			q2.addScore();
			System.out.println("本局您输了");
		}
		if((com =="剪刀"&&per =="剪刀")||(com =="石头"&&per =="石头")||(com =="布"&&per =="布")) {			
			System.out.println("本局平手");
		}
	}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值