Java实现猜拳游戏

一、问题简介

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

二、代码逻辑简介

1、向用户解释比赛规则;
2、接收用户输入的内容并判断用户输入的内容是否符合要求,如果不符合,重新输入。
3、电脑自动生成数字;
4、根据电脑和用户输入的内容,进行比较二者的胜负
5、让用户连续进行多场比赛,直到一方达到3分,比赛结束。

三、知识点

1、掌握Java的Scanner、while循环、switch、if 判断语句,能判别用户输入的类型是否为int类型。
2、部分封装内容。
3、能熟练梳理游戏的逻辑。

四、代码

package homework;

import java.util.Random;
import java.util.Scanner;
class Demo3 {

	public static void main(String[] args) {
		game g=new game();
		g.caiquan();
	}

}
//确定用户和电脑猜拳内容
class game{
	String people;
	String computer;
	int count1;
	int count2;
	public void caiquan() {
		//解释比赛规则
		System.out.println("猜拳游戏\n比赛规则:用户通过输入数字(1-剪刀,2—石头,3-布)与电脑进行对战,当某一方的分数达到率先达到10分,该方胜利!");
		
		while(true) {
		
		System.out.println("请输入数字:");
		int a;
		//判断用户输入的内容是否	
		while (true) {
		Scanner input = new Scanner(System.in);			//正确接收用户输入的内容	
		if (input.hasNextInt()) {
			int b=input.nextInt();
			if (b>0&&b<4) {				
				a=b;
				break ;
			}else {
				System.out.println("输入的数字不在规定的范围,请重新输入");	
				b=input.nextInt();
			}
		}else {
			System.out.println("输入的不是数字错误,请重新输入");				
		}
		}
		
		switch (a) {
		case 1:
			people = "剪刀";
			break;
		case 2:
			people ="石头";
			break;
		case 3:
			people ="布";
			break;
		}
		//电脑模拟的内容
		Random r=new Random();		
		int b = r.nextInt(3)+1;
		switch (b) {
		case 1:
			computer = "剪刀";
			break;
		case 2:
			computer ="石头";
			break;
		case 3:
			computer ="布";
			break;
		}
		//比较两者胜负
		if(a==b) {
			System.out.println("本场比赛平局!因为你输入的是"+people+",电脑输入的是"+computer+"。用户积分为:"+count1+"电脑积分为:"+count2);
		}else if(a==1&&b==2||a==2&&b==3||a==3&&b==1) {
			count1++;
			System.out.println("恭喜你,你获胜!因为你输入的是"+people+",电脑输入的是"+computer+"。"+count1);
			
			
		}else {
			count2++;
			System.out.println("很遗憾,本局电脑获胜!因为你输入的是"+people+",电脑输入的是"+computer+"。用户积分为:"+count1+",电脑积分为:"+count2);
			
		}
		//比较二者的积分,确定最终的胜利者
		if (count1==3||count2==3) {
			System.out.println("比赛结束");
			if (count1>count2) {
				System.out.println("恭喜你,获得最终胜利!\n你获得"+count1+"分,电脑获得"+count2+"分。");
			}else {
				System.out.println("很遗憾,电脑获得最终的胜利。\n你获得"+count1+"分,电脑获得"+count2+"分。");
			}
			break;
		}
		}
	}
	}
	
  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值