Java实现石头剪刀布游戏

思路:采取5局3胜制;用两个变量a、b标记,若,第一局电脑胜,则b加1,反之亦然。其中用到int randomNumber = new Random().nextInt(4) 随机生成0·4的一个数,通过生成的数索引数组中的内容,如 String[] array = {"石头", "剪刀", "步"}来模拟电脑出的结果。以循环语句来实行5次对局,通过判断语句来判断,结合两个变量a、b,如 ,a > b 则 某人获胜,a = b 则平局, a < b 则电脑获胜;如,a = 3,b = 0 ,则结束循环,判电脑失败。最后,会对对局结果复现。

一、代码

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

public class Text {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int randomNumber = 1; // 存储随机数
		String[] array = { "石头", "剪刀", "步" }; // 通过索引获取该数组的内容
		// 两数组用于对对局结果的复现
		int[] arr1 = new int[5];
		int[] arr2 = new int[5];
		boolean flag = true; // 用于控制循环
		int a = 0; // 某人获胜的次数参数
		int b = 0; // 电脑获胜的次数参数
		int c = 0; // 用于 arr1和arr2的索引参数
		int d = 0; // 用结束循环
		int e = 0; // 某人三场全胜则结束的循环的参数
		System.out.println(
				"------------------对局需知---------------\n" + "1) 1——>石头 2——>剪刀 3——>布\n" + "2) 对局采取5局3胜制\n" + "3) ");
		// 得到对局结果
		while (flag) {
			System.out.print("输入你的结果:");
			int Number = sc.nextInt();
			// 随机生成三个数(0、1、2、3)
			randomNumber = new Random().nextInt(4);
			// 该判断用于把0为1
			if(randomNumber == 0) {
				randomNumber = 1;
			}
			// 改判断用于检验输入是否为[1,3]
			if (Number < 4 && Number > 0) {
				System.out.println("电脑玩家: " + array[randomNumber - 1]);
				//
				arr1[c] = Number;
				arr2[c] = randomNumber;
				// 判断
				// 某人
				if (Number == 1 && randomNumber == 2) {
					a += 1;
				}
				if (Number == 2 && randomNumber == 3) {
					a += 1;
				}
				if (Number == 3 && randomNumber == 1) {
					a += 1;
				}
				// 电脑
				if (Number == 1 && randomNumber == 3) {
					b += 1;
				}
				if (Number == 2 && randomNumber == 1) {
					b += 1;
				}
				if (Number == 3 && randomNumber == 2) {
					b += 1;
				}
				c++;
				d++;
				// a = 3
				if (a == 3 && b == 0) {
					System.out.println("宛如天使下凡, 电脑投降");
					System.out.println("人类我还会回来的!!! X_X  X_X");
					System.out.println("计划有变撤!!!");
					e = 1;
					// 结果复现
					System.out.println();
					System.out.println("您的战绩:");
					for (int ints1 : arr1) {
						System.out.print(ints1 + "\t");
					}
					// 翻译结果
					System.out.println();
					for (int i = 0; i < arr1.length; i++) {
						if (arr1[i] == 1) {
							System.out.print("石头" + "\t");
						}
						if (arr1[i] == 2) {
							System.out.print("剪刀" + "\t");
						}
						if (arr1[i] == 3) {
							System.out.print("布" + "\t");
						}
					}
					System.out.println();
					System.out.println("电脑的战绩:");
					for (int ints2 : arr2) {
						System.out.print(ints2 + "\t");
					}
					// 翻译结果
					System.out.println();
					for (int i = 0; i < arr2.length; i++) {
						if (arr2[i] == 1) {
							System.out.print("石头" + "\t");
						}
						if (arr2[i] == 2) {
							System.out.print("剪刀" + "\t");
						}
						if (arr2[i] == 3) {
							System.out.print("布" + "\t");
						}
					}
				}
				System.out.println();
			} else {
				System.out.println("输入错误,请从新输入!!!");
				System.out.println();
			}
			if (d == 5 || e == 1) {
				flag = false;
			}
		}
		if (e != 1) {
			// 判断对局情况
			if (a > b) {
				System.out.print("您赢了!");
			}
			if (a == b) {
				System.out.print("平局");
			}
			if (b > a) {
				System.out.print("您输了!");
			}
			// 结果复现
			System.out.println();
			System.out.println("您的战绩:");
			for (int ints1 : arr1) {
				System.out.print(ints1 + "\t");
			}
			// 翻译结果
			System.out.println();
			for (int i = 0; i < arr1.length; i++) {
				if (arr1[i] == 1) {
					System.out.print("石头" + "\t");
				}
				if (arr1[i] == 2) {
					System.out.print("剪刀" + "\t");
				}
				if (arr1[i] == 3) {
					System.out.print("布" + "\t");
				}
			}
			System.out.println();
			System.out.println("电脑的战绩:");
			for (int ints2 : arr2) {
				System.out.print(ints2 + "\t");
			}
			// 翻译结果
			System.out.println();
			for (int i = 0; i < arr2.length; i++) {
				if (arr2[i] == 1) {
					System.out.print("石头" + "\t");
				}
				if (arr2[i] == 2) {
					System.out.print("剪刀" + "\t");
				}
				if (arr2[i] == 3) {
					System.out.print("布" + "\t");
				}
			}
		}
	}
}

二、效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值