java实现剪刀石头布小游戏 / 猜拳游戏

方法一:

//import java.util.Random;
import java.util.Scanner;

public class Game {
	public static void main(String[] args) {
		System.out.println("剪刀石头布小游戏");
		System.out.println("-----------------------------------");
		Scanner input = new Scanner(System.in);
		int gamer;
		int computer;
		boolean flag = true;
		String yn = "Y";
		while (flag) {
			System.out.println("请输入:(1.石头、2.剪刀  、3.布 )");
			gamer = input.nextInt();

			computer = (int) (Math.random() * 3) + 1; // 另一种产生随机数的方法如下被注释的内容
			// Random r=new Random();
			// int computer = r.nextInt(3)+1;

			System.out.print("结果为:");
			if (gamer == 1) {
				flag = false;
				// String strGamer = "石头";
				if (computer == 1) {
					// String strComputer = "石头";
					System.out.print("平局。" + "\n你出的石头,电脑出的石头");
					// System.out.print("平局"+"\n"+"你出的"+strGamer+",电脑出的"+strComputer);
				} else if (computer == 0)
					System.out.print("你获胜了!" + "\n你出的石头,电脑出的剪刀");
				else
					System.out.print("电脑获胜了。" + "\n你出的石头,电脑出的布");
			} else if (gamer == 2) {
				flag = false;
				if (computer == 2)
					System.out.print("平局" + "\n你出的剪刀,电脑出的剪刀");
				else if (computer == 3)
					System.out.print("你获胜了!" + "\n你出的剪刀,电脑出的布");
				else
					System.out.print("电脑获胜了" + "\n你出的剪刀,电脑出的石头");
			} else if (gamer == 3) {
				flag = false;
				if (computer == 3)
					System.out.print("平局" + "\n你出的布,电脑出的布");
				else if (computer == 1)
					System.out.print("你获胜了!" + "\n你出的布,电脑出的石头");
				else
					System.out.print("电脑获胜了" + "\n你出的布,电脑出的剪刀");
			} else {
				System.out.println("错误,请重新输入");
				flag = true;
			}
			if (flag == false) {
				System.out.println("\n是否继续进行:(Y/N)");
				yn = input.next();
//              if (yn.charAt(0) == 'Y' || yn.charAt(0) == 'y') { //判断区分大小写
				if ("y".equalsIgnoreCase(yn)) {  //自动不区分大小写
					flag = true;
				} else
					System.out.println("游戏结束!");
			}
		}
	}
}
	Random r=new Random();
	int computer = r.nextInt(3)+1;  //3 表示可产生的随机数为 0,1,2 
									//和数组相似,从0开始,一共3个数
  • 字符串类型中获取某个字符,例如:
		String str = "AbCd";
		char c = str.charAt(0);  //0是获取字符串类型str的第一个字符,赋值给char类型的c

另一种方式:

因为第一个 if-else if-else多选结构太过麻烦,很多都是重复内容,进行一些改进。

import java.util.Scanner;

public class Game2 {
	public static void main(String[] args) {
		System.out.println("剪刀石头布小游戏");
		System.out.println("-----------------------------------");
		Scanner input = new Scanner(System.in);
		int gamer = 0;
		int computer = 0;
		boolean flag = true;
		String strGamer = "布";
		String strComputer = "布";
		String yn = "Y";
		while (flag) {
			System.out.println("请输入:(1.石头、2.剪刀  、3.布 )");
			gamer = input.nextInt();
			computer = (int) (Math.random() * 3) + 1;
			switch (gamer) {
			case 1:strGamer = "石头";break;
			case 2:strGamer = "剪刀";break;
			case 3:strGamer = "布";break;
			}
			switch (computer) {
			case 1:strComputer = "石头";break;
			case 2:strComputer = "剪刀";break;
			case 3:strComputer = "布";break;
			}
			System.out.print("结果:");
			if (computer == gamer) {
				System.out.print("平局" + "\n" + "电脑出的是" + strComputer + ",你出的是" + strGamer);
				flag = false;
			}
			if (computer == 1 && gamer == 2 || computer == 2 && gamer == 3 || computer == 3 && gamer == 1) {
				System.out.println( "你赢了" + "\n" + "电脑出的是" + strComputer + ",你出的是" + strGamer);
				flag = false;
			}
			if (computer == 1 && gamer == 3 || computer == 2 && gamer == 1 || computer == 3 && gamer == 2) {
				System.out.println("电脑赢了" + "\n" + "电脑出的是" + strComputer + ",你出的是" + strGamer);
				flag = false;
			}

			if (gamer != 1 && gamer != 2 && gamer != 3) {
				System.out.println("错误" + "\n" + "只能输入1、2、3");
				flag = true;
			}
			if (flag == false) {
				System.out.println("\n是否继续进行:(Y/N)");
				yn = input.next();
				if ("y".equalsIgnoreCase(yn)) { // 自动不区分大小写
					flag = true;
				} else
					System.out.println("游戏结束!");
			}
		}
	}
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

樂小伍

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值