栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

猜数字游戏1A2B JAVA

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

猜数字游戏1A2B JAVA

很早之前玩过这个猜数字游戏 一直想着试试能不能复刻出来 最近动手写了下 全当从头开始学java吧 之前用数组版本写了个 发现一直有bug没法解决 然后换成动态数组写 个人测试没啥bug 只不过有些地方需要完善之类的 等后续继续学习 在回过头完善算了

package game1;

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

public class guess {

    public static void main(String[] args) {
        boolean flag=false;

        ArrayList guessnum = new ArrayList<>();
        ArrayList answer = new ArrayList<>();
        ArrayList temp = new ArrayList<>();
        Random rd = new Random();
        for (int i = 0; i <4 ; i++) {
            answer.add(rd.nextInt(10));
        }

        System.out.println("答案:"+answer.toString());
        while(flag==false){
            int A=0,B=0;
            guessnum.clear();
            Scanner sc = new Scanner(System.in);
            String num =sc.next();
            String[] Strnum = num.toString().split("");
            for (String x:Strnum){
                guessnum.add(Integer.parseInt(x));
            }
            if (guessnum.size()>answer.size()){
                break;
            }
            temp = (ArrayList)answer.clone();
            System.out.println(guessnum);


            for (int i = 0; i  

全当是记录学习了 有bug提出来 我试试能不能改 同样能优化也能跟我说说 手把手教我改的那种最好( 

游戏规则:输入4个数字 相同位置数字相同A+1 不同位置数字相同B+1

先判断A后判断B 最后给出反馈A: B: 全猜中为4A 表示获胜游戏结束

bug数组版也放出来 能教我怎么修改更好 感谢

---------------------------------------------------------------bug-------------------------------------------------------------

package game1;

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

public class Main {

    public static void main(String[] args) {

        int num;//保存随机数
        int[] num1=null;
        num1 = new int[4];
        int scnum;
        boolean flag=false;

        Random random = new Random(12341);
        num = random.nextInt(8999)+1000;
        System.out.println(num);//输出获取的随机数
        num1 = Main.paixu(num);//转换成倒叙数组
//        for (int i = 0; i <4 ; i++) {
//            System.out.println("num1反转数后"+":"+num1[i]);
//        }

        System.out.println("输入4位数字");
            Scanner sc = new Scanner(System.in);

        while (flag = true){
            scnum = sc.nextInt();
            if (scnum<=9999 & scnum>1000){
                int num2[]=null;
                num2 = new int[4];
                num2 = Main.paixu(scnum);//转换成倒叙数组
                System.out.println("输出为"+scnum);
                for (int i = 0; i <4 ; i++) {
               System.out.println("num2反转数后"+":"+num2[i]);
                }

                int a=0;
                int b=0;
                for (int i = 0; i <4 ; i++) {
                        if (num2[i]==num1[i]){
                            a++;
                        }
                        else {
                            int[] temp=null;
                            temp=new int[4];
                            temp[i] = num2[i];
                            System.out.println("temp[i]: "+temp[i] +"num1[i]: "+num1[i] +"i: "+i);
                            for (int j = 0; j <4 ; j++) {
                                if (temp[j]==num1[i])
                                {
                                    System.out.println("temp[i]: "+temp[i] +"num1[i]: "+num1[i] +"i: "+i);
                                    b++;
                                    break;
                                }
                            }
                        }
                }
                System.out.println("A"+a);
                System.out.println("b"+b);
                if (a==4){
                    System.out.println("win");
                    break;
                }

            }
            else{
                System.out.println("输入错误");
            }

         }
    }
    public static int[] paixu(int num) {
        int[] num1 = null;
        num1 = new int[4];
        while (num != 0) {
            for (int i = 0; i < 4; i++) {
                int val = num % 10;
                num1[i] = val;
//                System.out.println("num1反转数前"+i+":"+num1[i]);
                num = num / 10;
            }
            int temp = num1[num1.length / 2];
            num1[num1.length / 2] = num1[num1.length / 2 - 1];
            num1[num1.length / 2 - 1] = temp;
            temp = num1[0];
            num1[0] = num1[num1.length - 1];
            num1[num1.length - 1] = temp;
        }
        return num1;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014656.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号