// 步骤1.出数字(由电脑产生4个0-9随机数,且不重复) (双色球) // 步骤2.猜数字(用户输入) // 用户输入存在限制 /* 1.只能输入一个数字字符串 2.字符串中的字符不能重复 3.只能给4个字符(如果字符个数不等于4个,需要请用户重新输入) PS:如果用户没有输入正确的话,不会进入比较环节 */ // 步骤3.用户猜的数字 和 电脑 出的数字对比,给出结果几A几B // ,如果结果不是4A0B,需要用户重新输入,知道4A0B为止 //1、先由电脑产生4个0-9随机数,且不重复 int [] box=new int[4]; //用循环去重复 for (int i=0;i<box.length;i++){ //分别定义数组中的每一个随机值 box[i]=(int)(Math.random()*10); //判断随机生成后的数据是否互相重复 for(int j=0;j<i;j++){ //如果元素存在重复,则循环回滚,如果元素不重复则终止循环,输出数组 if(box[i]==box[j]){ i--; break; } } } //随机生成的数组输出 // for(int i=0;i< box.length;i++){ // System.out.print(box[i]+" "); // } /* - 2.猜数字(用户输入) 用户输入存在限制 1.只能输入一个数字字符串 2.字符串中的字符不能重复 3.只能给4个字符(如果字符个数不等于4个,需要请用户重新输入) PS:如果用户没有输入正确的话,不会进入比较环节 */ char[] chars; //创建一个死循环 while (true){ //先定义用户输入的输入器 Scanner input=new Scanner(System.in); System.out.println("请输入4个随意组成的数字"); String yongHu= input.next(); //把用户输入的字符串转为字符数组 chars=yongHu.toCharArray(); //字符数组的长度 // System.out.println("字符数组的长度"); // System.out.println(chars.length); //对用户输入的数据进行验证,输入内容不符合条件则提示用户重新输入 //定义三个条件变量 int d=0; int e=0; int c=0; for(int i=0;i<chars.length;i++){ //当用户输入的内容不是数字字串符时 if(chars[i]<48||chars[i]>57){ d++; } //当用户输入的字符不等于4位数 if(chars.length!=4){ e++; } //当用户输入的字符存在重复时 for(int j=0;j<i;j++){ if(chars[i]==chars[j]&&i!=j){ c++; break; } } } if(d>0){ System.out.println("输入内容不是数字字符串,请重新输入"); continue; } if (e>0){ System.out.println("您输入的不是4位数,请重新输入"); continue; } if (c>0){ System.out.println("存在重复的数字,请重新输入"); continue; } // if(d==0&&e==0&&c==0){ // continue; // } //输出核实数组内容是否正确 // for(int i=0;i< chars.length;i++){ // System.out.print(chars[i]+" "); // } /*3.用户猜的数字 和 电脑 出的数字对比,给出结果几A几B 如果结果不是4A0B,需要用户重新输入,知道4A0B为止*/ //定义两个变量 int counta=0; int countb=0; for(int i=0;i< box.length;i++){ for (int j=0;j<box.length;j++){ if(box[i]==chars[j]-48){ if (i==j){ counta++; }else { countb++; } } } } // 得出结果是多少,不是4A0B则循环继续 String info = counta + "A" + countb + "B"; System.out.println(info); if(info.equals("4A0B")){ System.out.println("成功"); break; }else { System.out.println("请重新猜数字"); } }
猜数字游戏,java代码(4A0B规则)
最新推荐文章于 2023-08-26 00:52:03 发布