类似一个猜数字游戏的代码,求解一下过程

Java程序,生成一个1-33之间不重复的6个数字,组成一个int数组,在控制台依次输入六个整数,输入的数字和生成的数字相同3个(含3个)以上结束程序,反之则继续输入,先定义一个方法,需要传的参数是两个int[ ]类

我的思路是:
1、定义比对答案的方法game,先进行参数为空检测,然后用for循环遍历回答数组和答案数组,如果正确,则正确计数+1,然后将答案数组这个元素置-1,不再参与比对,循环结束,判断回答正确数大于3返回true,表示游戏过关,否则返回false,表示游戏没有过关
2、在main方法,先用Random类的nextInt()方法产生6个的答案数组元素,然后在while循环进行游戏判断,获取6个输入作为回答数组,然后调用game方法,判断回答正确数是否超过3个,如果超过则游戏过关,否则继续猜数
参考链接:
java中产生指定范围内的随机数_打呼噜的星.的博客-CSDN博客_java随机生成一个区间的数
代码如下:

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

public class GuessNumbersGame {

    public static boolean game(int[]answer,int[]result) {
        
        int right=0;
        
        //参数检测是否为空
        if(answer==null||result==null) {
            System.out.println("参数错误!");
            return false;
        }
        
//        int atemp,rtemp;
//        for(int i=0;i<5;i++) {
//            
//            for(int j=i;j<6;j++) {
//                
//                if(answer[i]>answer[i]) {
//                    atemp=answer[i];
//                    answer[i]=answer[j];
//                    answer[j]=atemp;
//                    
//                    rtemp=result[i];
//                    result[i]=result[j];
//                    result[j]=rtemp; 
//                }
//                
//            }
//        }
//        
        for(int i=0;i<6;i++) {
            
            for(int j=0;j<6;j++) {
                
                // 将回答数组每个元素与答案数组每一个元素比对,如果相同则回答正确计数+1,然后将这个答案数组元素置-1,表示已经比对过,并不再比对
                if(answer[i]==result[j]) {
                    result[j]=-1;
                    right++;
                }
            }
        }
        
        //入股回答正确数超过3,则返回true,否则false
        if(right>=3) {        
            return true;
        }else {
            return false;
        }
        
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //https://blog.csdn.net/wsj_jerry521/article/details/109735801
        
        int [] result=new int[6];
        Random rand = new Random();
        //产生答案数组
        for(int i=0;i<6;i++) {
            result[i]=rand.nextInt(33)+1;
            //System.out.print(result[i]+" ");
        }
        System.out.println();
        
        boolean guessright=false;
        Scanner sc = new Scanner(System.in);
        int[] answer=new int [6];
        //进行猜数游戏
        while(guessright==false) {
            System.out.println("请输入所猜的六个数:");
            //获取6个回答
            for(int i=0;i<6;i++) {
                answer[i] = sc.nextInt();
            }
            //比对答案,如果正确,退出游戏,如果错误继续猜数
            guessright= game(answer,result);
        }
        System.out.println("恭喜你,游戏过关!");
        
    }

}


img

public static void main(String[] args) {
        Random random = new Random();
        int[] result = new int[6];
        for (int i = 0; i < 6; i++) {
            result[i] = random.nextInt(33) + 1;
        }
        List list = new ArrayList();
        for (int i : result) {
            list.add(i);
        }
        // System.out.println("随机数组已生成:" + list);
        Scanner scanner = new Scanner(System.in);
        int[] answer = new int[6];
        boolean flag = true;
        while (flag) {
            System.out.println("请输入你猜的6个数字:(1-33之间,包含1-33)");
            for (int i = 0; i < 6; i++) {
                answer[i] = scanner.nextInt();
            }
           // List list2 = new ArrayList();
           //  for (int i : answer) {
           //    list2.add(i);
           // }
            // System.out.println(list2);
            List list3 = new ArrayList();
            for (int i : result) {
                list3.add(i);
            }
            flag = flag(list3,answer);
        }
        System.out.println("success!");
    }
    public static boolean flag(List<Integer> result,int[] answer) {
        int num = 0 ;
        for (int i = 0; i < result.size(); i++) {
            for (int j = 0; j < answer.length; j++) {
                if (answer[j] == result.get(i)){
                    num++;
                    result.set(i,0);
                }
            }
        }
        if (num >= 3){
            return false;
        }
        return true;
    }

```)