这里介绍使用java来实现猜四位不重复数字,直到猜正确程序结束;中间互动通过控制台来完成。
规则:系统随机生成四位不重复的数字(以下简称随机数),您只需要猜中这个随机数,每一次猜会给出返回值。A代表位置相同,B代表数字相同。 eg:有一个位置相同系统提示‘1A1B’,有一个数字相同但是位置不对提示‘0A1B’,猜中2个数,一个数位置相同提示‘1A2B’,猜中4位数且位置都不对提示‘0A4B’。
开发步骤:
1,获取随机四位不重复的数字
2,获取用户输入数字并判断是否相同
3,获取结果打印出提示语句
1. 首先我们要生成四位不重复的数,通过Random生成四位数的随机数,然后循坏判断是否有重复的数字。
public static String numBuilder(){ //结果变量 String num1 = ""; Random random = new Random(); while (true){ //是否重复标志 boolean flag = false; int i = random.nextInt(9999); String num = i+""; int length1 = num.length(); if(length1==4){ //循坏判断数字是否重复 for (int j = 0; j < length1; j++) { for (int k = j+1; k < length1; k++) { if(num.charAt(j) == num.charAt(k)){ flag = true; break; } } if(flag == true){ break; } } if(flag == false){ num1 = i+""; break; } } } return num1; }2.判断用户猜测数字与系统随机数是否一致。
public static String guessNum(String num,String guessNum){ boolean f = false; //先判断位置是否相同 int contLocationRight = 0; int contRightNum = 0; for (int i = 0; i < guessNum.length(); i++) { //判断位置相同的 if(guessNum.charAt(i) == num.charAt(i)){ contLocationRight++; } for (int j = 0; j < num.length(); j++) { if(guessNum.charAt(i)==num.charAt(j)){ contRightNum++; } } } return contLocationRight+"A"+contRightNum+"B"; }3. main方法测试,这里因为要循环一直到用户猜正确为止,使用while循环实现。并且完善了提示语和查看答案所以main方法比较长,可以删除一些代码。这儿两个都列一下!
3.1 没完善的代码
public static void main(String[] args){ String num1 = numBuilder(); Scanner scanner = new Scanner(System.in); int count=0; while (true){ count++; System.out.print("请输入您猜的数字:"); String inputNum = scanner.next(); if(inputNum.equals("****")){ System.out.println("系统随机数为:"+num1); count--; continue; } if(inputNum.length()!=4){ System.out.println("你输入的数字不是四位数,请重新输入!"); count--; continue; } //获取输入的数字 String result = guessNum(num1, inputNum); //结果输出 if("4A4B".equals(result)){ System.out.println("恭喜您,猜中正确数字,您一共猜了"+count+"次."); break; }else { System.out.println("—————————"); System.out.println(result); System.out.println("—————————"); } } }
测试结果截图:
3.2 完善后的测试代码
public static void main(String[] args){ String[] arr = {"别让你的脑子睡大觉!", "其实每一个人都拥有智慧,但有些人做了智慧的傀儡,而有一些人则做了智慧的主人。", "学习本应不是墨守陈规,而是去不断思考与领悟!", "创造靠智慧,处世靠常识;有常识而无智慧,谓之平庸,有智慧而无常识,谓之笨拙。", "什么,他还没猜对?你带多几个人,多带几个家伙?看看它的的脑袋用来干什么的啊?是用来装水的吗?", "莫等闲,白了少年头,空悲切", "你是不是经常熬夜,脑子都不转", "汝脑入水,锈也。", "都说一孕傻三年,你是怀孕了吗?", "可能真的是岁数大了吧,你脑子越来越不好使了。"}; Random random = new Random(); //获取四位不重复数字。 String num1 = numBuilder(); System.out.println("----------------------------========---------------------------------"); System.out.println("游戏规则:"); System.out.println( "t系统随机生成四位不重复的数字(以下简称随机数),您只需要猜中这个随机数,n" + "每一次猜会给出返回参数。A代表位置相同,B代表数字相同。n"+ "teg:有一个位置相同系统提示‘1A1B’,有一个数字相同但是位置不对提示‘0A1B’,n" + "猜中2个数,一个数位置相同提示‘1A2B’,猜中4位数且位置都不对提示‘0A4B’。n" + "注:单位数字取值范围为(0~9)。"); System.out.println("----------------------------========---------------------------------"); Scanner scanner = new Scanner(System.in); int count=0; while (true){ count++; System.out.print("请输入您猜的数字:"); String inputNum = scanner.next(); if(inputNum.equals("****")){ System.out.println("系统随机数为:"+num1); count--; continue; } if(inputNum.equals("支付成功")){ count--; System.out.println("输入****查看结果"); continue; } if(inputNum.length()!=4){ System.out.println("你输入的数字不是四位数,请重新输入!"); count--; continue; } //获取输入的数字 String result = guessNum(num1, inputNum); //结果输出 if("4A4B".equals(result)){ if(count==1){ System.out.println("======++======++======++======++======++======++======++======++"); System.out.println("恭喜您,猜中正确数字,您一共猜了"+count+"次,荣获‘后无来者’称号!"); System.out.println("======++======++======++======++======++======++======++======++"); } else if(count<3){ System.out.println("======++======++======++======++======++======++======++======++"); System.out.println("恭喜您,猜中正确数字,您一共猜了"+count+"次,荣获‘前无古人’称号!"); System.out.println("======++======++======++======++======++======++======++======++"); } else if(count<5){ System.out.println("======++======++======++======++======++======++======++======++"); System.out.println("恭喜您,猜中正确数字,您一共猜了"+count+"次,荣获‘举世无双’称号!"); System.out.println("======++======++======++======++======++======++======++======++"); } else if(count<9){ System.out.println("======++======++======++======++======++======++======++======++"); System.out.println("恭喜您,猜中正确数字,您一共猜了"+count+"次,荣获‘最强大脑’称号!"); System.out.println("======++======++======++======++======++======++======++======++"); }else if(count<12){ System.out.println("======++======++======++======++======++======++======++======++"); System.out.println("恭喜您,猜中正确数字,您一共猜了"+count+"次,荣获‘足智多谋’称号!"); System.out.println("======++======++======++======++======++======++======++======++"); }else { System.out.println("======++======++======++======++======++======++======++======++"); System.out.println("恭喜您,猜中正确数字,您一共猜了"+count+"次,荣获‘平庸之才’称号!"); System.out.println("======++======++======++======++======++======++======++======++"); } break; }else { System.out.println(result); System.out.println("—————————=—————————"); } if(count==9||count==13||count>=16){ System.out.println("你也太逊了吧,您可以支付0.5元获取正确答案!"); if(count==16){ System.out.println("输入'****'查看正确答案"); } } if(count>11){ int i = random.nextInt(10); System.out.println(arr[i]); } } }
测试截图:
多次会有更多的提示,这里运气好就没有触发更多的提示,可以自己尝试一下 。
有更多小游戏可以评论留言,有机会下次发布。
版权归属作者(CY_99),未经许可,严禁转载!
可以分享该篇博客——2021-12-27
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)