Java实现猜拳小游戏

实验要求(分支练习)
    (游戏:剪刀、石头、布)编写可以玩剪刀-石头-布的游戏。(剪刀可以剪布,石头可以砸剪刀,布可以包石头。)
    程序提示用户随机产生一个数,这个数为0、1或者2,分别表示石头、剪刀和布。程序提示用户输入值0、1或者2,然后显示一条信息,表明用户和计算机的输赢。

运行事例(建议):

---------------欢迎进入猜拳游戏---------------
  ******************************************
   ———出拳规则:0.剪刀 1.石头 2.布———
    ---------》》》猜拳开始《《《---------

----------------------------------------------
请选择你的对手:1.喜茶 2.奈雪 3.伏见桃山
1
请输入你的姓名:
雪宝
雪宝VS喜茶
要开始吗?(Y/N)
y
请出拳:0.剪刀 1.石头 2.布
0
雪宝出拳:剪刀
喜茶出拳:石头
结果:喜茶胜,安慰!
要跟我再比一局嘛?(Y/N)
y
请出拳:0.剪刀 1.石头 2.布
2
雪宝出拳:布
喜茶出拳:剪刀
结果:喜茶胜,安慰!
要跟我再比一局嘛?(Y/N)
n
雪宝VS喜茶
对战次数:2

姓名   得分
雪宝    0 
喜茶    2

以下为代码:(小白原创,敬请大佬们不吝赐教)

import java.util.Scanner;

public class Test {
	public static void main(String[] args) {
		Game opponent = new Game();
		System.out.println("---------------欢迎进入猜拳游戏---------------\r\n"
				+ "  ******************************************\r\n"
				+ "   ———出拳规则:0.剪刀 1.石头 2.布———\r\n"
				+ "    ---------》》》猜拳开始《《《---------\r\n"
				+ "\r\n"
				+ "----------------------------------------------");
		opponent.choose();
	}
}
class Game{
	int opnum;
	int number1,number2;
	int scoreuse =0;
	int score = 0;
	int count = 1;
	String name;
	String opname;
	String ensure;
	String fist;
	public void choose() {
		Scanner scan = new Scanner(System.in);
		System.out.println("请选择你的对手:1.喜茶 2.奈雪 3.伏见桃山");
		opnum = scan.nextInt();
		switch(opnum){
		case 1:
			opname = "喜茶";
			break;
		case 2:
			opname = "奈雪";
			break;
		case 3:
			opname = "伏见桃山";
			break;
		default:
			System.out.println("请输入正确的数字1,2,3");
			choose();
		}
		System.out.println("请输入你的姓名:");
		name = scan.next();
		System.out.println(name + "VS" + opname);
		System.out.println("要开始吗?(Y/N)");
		Ensure(name);
		Judge(name);
		System.out.println(name+"VS" + opname + "\r\n"
				+ "对战次数:" + count +  "\r\n"
				+ "\r\n"
				+ "姓名   得分\r\n"
				+  name +"\t" + scoreuse + " \r\n"
				+ opname +"\t" + score );
		
	}
	public void Judge(String name) {
		Scanner scan = new Scanner(System.in);
		for(int i = 1;i > 0;){
			System.out.println("要跟我再比一局嘛?(Y/N)");
			String judge = scan.next();
			if(judge.equals("Y")||judge.equals("y")) {
				count++;
				Guess(name);
			} else if(judge.equals("N")||judge.equals("n")){
				i = 0;
			} else {
				System.out.println("请重新选择:(Y/N)");
				Judge(name);
			}
		}
	}
	public void Ensure(String name) {
		Scanner scan = new Scanner(System.in);
		ensure = scan.next();
		switch(ensure) {
		case "Y":
		case "y":
			Guess(name);
			break;
		case "N":
		case "n":
			System.out.println("待会儿再来");
			System.out.println("要开始吗?(Y/N)");
			Ensure(name);
			break;
		default:
			System.out.println("请重新选择:(Y/N)");
			Ensure(name);
		}
	}
	public void Guess(String name) {
		Scanner scan = new Scanner(System.in);
		System.out.println("请出拳:0.剪刀 1.石头 2.布");
		number1 = scan.nextInt();
		Switchfist(number1);
		System.out.println(name  + "出拳:"+ fist);
		rand();
		Switchfist(number2);
		System.out.println(opname + "出拳:"+ fist);
		Compare(number1,number2);
		
	}
	public void Switchfist(int number) {
		
		switch(number) {
		case 0:
			fist = "剪刀";
			break;
		case 1:
			fist = "石头";
			break;
		case 2:
			fist = "布";
			break;
		}
	}
	public int rand() {
		number2 = (int)(Math.random()*2);
		return number2;
	}
	
	public void Compare(int number1,int number2) {
		if((number1==0&&number2==1)||(number1==1&&number2==2)||(number1==2&&number2==0)) {
			System.out.println("结果:" + opname + "胜,安慰!");
			score++;
		}
		if((number1==1&&number2==0)||(number1==2&&number2==1)||(number1==0&&number2==2)) {
			System.out.println("结果:" + name + "胜,恭喜!");
			scoreuse++;
		}
		if(number1 == number2) {
			System.out.println("结果:和局,完美!");
		}
	}
}

如果本文对你有帮助的话,动动小手点个赞叭~

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪宝本尊

谢谢你这么可爱还给我打赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值