游戏规则:
1.系统随机生成四个0-9不重复的数,
2.玩家输入四个0-9不重复的数,输入的数与系统有几个相同就有几B(不看位置),输入的数与系统生成的数相同且位置也相同就有几A
例:1234
猜:4321->0A4B
猜:1243->2A4B
package com.wedu.demo.day04;
import java.util.Random;
import java.util.Scanner;
/**
* @author : Rain
* @version : 1.0
* @className : Test
* @description : 描述说明该类的功能
* @createTime : 2022/10/12 21:50
*/
public class Test {
public static void main(String[] args) {
/*
* 游戏规则:系统随机生成四个0-9不重复的数,
* 玩家输入四个0-9不重复的数,输入的数与系统有几个相同就有几B(不看位置),输入的数与系统生成的数相同且位置也相同就有几A
* */
Scanner sc = new Scanner(System.in);
int[] arr = getNum();
System.out.println("随机生成的数为:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
while (true) {
System.out.println("请输入四个0-9不重复的数(中间间隔为空格):");
int countB = 0;
int countA = 0;
//定义一个数组,存储玩家输入的数
int[] myArr = new int[4];
for (int i = 0; i < arr.length; i++) {
myArr[i] = sc.nextInt();
}
//判断有几个A
for (int i = 0; i < arr.length; i++) {
if (arr[i] == myArr[i]) {
countA++;
}
}
//判断有几个B
/*for (int i = 0; i < arr.length; i++) {
if (arr[i]==myArr[0]||arr[i]==myArr[1]||arr[i]==myArr[2]||arr[i]==myArr[3]){
countB++;
}
}*/
//判断有几个B
for (int i = 0; i < arr.length; i++) {
for (int i1 = 0; i1 < myArr.length; i1++) {
if (arr[i] == myArr[i1]) {
countB++;
}
}
}
System.out.print(countA + "A");
System.out.print(countB + "B");
System.out.println();
if (countA == 4 && countB == 4) {
System.out.println("猜对了");
break;
}
}
}
/**
* @return : int[]
* @methodName : getNum
* @description : 获取随机生成的四个0-9不重复的数
* @author : Rain
* @version : V1.0
* @createTime : 2022/10/12 23:07
*/
public static int[] getNum() {
int[] arr = new int[4];
Random r = new Random();
for (int i = 0; i < arr.length; ) {
int num = r.nextInt(10);
boolean flag = isExist(arr, num);
if (!flag) {
arr[i] = num;
i++;
}
}
return arr;
}
/**
* @param : arr
* @param : num
* @return : boolean
* @methodName : isExist
* @description : 判断数是否已存在(重复)
* @author : Rain
* @version : V1.0
* @createTime : 2022/10/12 23:08
*/
public static boolean isExist(int[] arr, int num) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == num) {
return true;
}
}
return false;
}
}