作为一名新手程序员在java基础的面向过程中学了一个小游戏的代码,现在在这里给大家分享一下自己写完之后的代码。(已附上规则) import java.util.Scanner; public class BullsAndCows { /* 需求: 1、程序产生一个4位随机数,每一位0-9,且不能重复,0可以开头; 2、接收用户的输入,输入要求也是4位的不重复数,0可以开头; 一旦输错,要求用户重新输入,并且不占用猜测次数; 3、用用户输入的数字和后台生成的数字进行比较,得到几A几B的结果显示 A -- 有几个数字正确且位置也正确 B -- 有几个数字正确且位置不正确 4、在没有产生4A0B的情况下,给出还有几次机会的信息,用户重新输入,共7次机会。 产生了4A0B则表示用户猜对,不再重新输入。 5、最终猜对给出恭喜用户的信息; 最终没有猜对给出正确答案,并鼓励用户。 */ public static void main(String[] args) { int[] randoms = generateRandom(); for(int i = 0; i < 7; i++){ String inputStr = input(i + 1); if(!checkStringAllNumber(inputStr)){ i--; continue; } int inputNum = Integer.parseInt(inputStr); if(!checkInputNumberBounds(inputNum)){ i --; continue; } int[] inputs = checkRepeat(inputNum); if(inputs == null){ i --; continue; } String result = compare(randoms,inputs); if(result.equals("4A0B")){ System.out.println("恭喜你,猜对了!"); return; }else{ System.out.println(result); } } System.out.println("7次机会用完,最终结果是:" + randoms[0]+ randoms[1]+ randoms[2]+ randoms[3]); } /* 产生一个四位的随机数,不能重复,0可以开头 */ public static int[] generateRandom(){ int[] randoms = new int[4]; for(int i = 0; i < randoms.length; i++){ randoms[i] = (int)(Math.random() * 10); for(int j = 0; j < i; j++){ if(randoms[i] == randoms[j]){ i --; break; } } } return randoms; } public static String input(int times){ Scanner scan = new Scanner(System.in); System.out.println("请输入你的第" + times + "次猜测:"); String inputStr = scan.next(); return inputStr; } /* 验证字符串中是否是全数字 */ public static boolean checkStringAllNumber(String str){ char[] charArray = str.toCharArray(); for(int i = 0; i < charArray.length; i++){ if(charArray[i] < '0' || charArray[i] > '9'){ return false; } } return true; } /* 验证字符串中的数字是否是4位数或3位数 */ public static boolean checkInputNumberBounds(int inputNum){ if(inputNum >= 100 && inputNum < 10000){ return true; } return false; } /* 验证不重复 */ public static int[] checkRepeat(int inputNum){ int[] inputs = new int[4]; inputs[0] = inputNum / 1000; inputs[1] = inputNum / 100 % 10; inputs[2] = inputNum / 10 % 10; inputs[3] = inputNum % 10; for(int i = 0; i < inputs.length - 1; i++){ for(int j = i + 1; j < inputs.length; j++){ if(inputs[i] == inputs[j]){ return null;//验证不通过返回null } } } return inputs; } /* 比较输入的数组和随机数数组,得到几A几B */ public static String compare(int[] randoms, int[] inputs){ int a = 0, b = 0; for(int i = 0; i < randoms.length; i++){ for(int j = 0; j < inputs.length; j++){ if(randoms[i] == inputs[j] && i == j){ a ++; }else if(randoms[i] == inputs[j]){ b ++; } } } return a + "A" + b + "B"; } }
奶牛关小游戏代码
最新推荐文章于 2024-08-02 10:57:17 发布