思路:采取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");
}
}
}
}
}
二、效果图