package org.blackice; import java.io.BufferedReader; import java.io.InputStreamReader; public class GuestNumber { /** * @param args */ public static void main(String[] args) { try { int i = 0; String sNum = CreateNum(); System.out.println("=============================================="); System.out.println("指令说明:"); System.out.println("0、输入 start 重新开始游戏");//不用这个查看答案 System.out.println("1、输入 redo 查看答案"); //这个变成作弊专用 System.out.println("2、输入 exit 退出游戏"); System.out.println("游戏规则"); System.out.println("1、游戏开始时会产生一个0000-9999随机数"); System.out.println("2、系统接收您输入的四位数字,并加以比较,猜中并位置正确的数字位以 1 表示"); System.out.println(" "); System.out.println("=============================================="); String inputStr = ""; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); do { inputStr = br.readLine(); if (inputStr.equals("redo")) { System.out.println("既然你这么想知道,我那就告诉你好咯,答案是:" + sNum); } else if (inputStr.equals("exit")) { System.exit(0); } else if (inputStr.equals("start")) { System.out.println("游戏已重新开始了"); //给出提示 System.out.println("我现在有一个0000-9999的数字,你想的数字是不是和我一样哦!"); i = 0; sNum = CreateNum(); } else { if ((!inputStr.matches("[0-9]+")) || inputStr.length() > 4 || inputStr.length() < 4) { System.out.println("不要打岔啦,要输入正确的四个数字:" + inputStr.length()); } else if (i >= 9) {//这里添加条件,猜满10不让再猜了 System.out.println("你已没机会了,等下次再猜吧,答案是:" + sNum); } else { i++; if (inputStr.equals(sNum)) { switch (i) { case 1: { switch ((int) (Math.random() * 100) % 4) { case 0: System.out.println("好厉害哦,第一次就猜对了"); break; case 1: System.out.println("小样,你是不是作弊呀"); break; case 2: System.out.println("一猜就中,你是不是算命先生"); break; case 3: System.out.println("额的神哦,你猜的也太准了吧"); break; } } break; case 2: case 3: case 4: case 5: case 6: case 7: case 8: System.out.println("恭喜您猜中对了!我还以为你还要再猜" + (10 - i) + "次呢!"); break; case 9: System.out.println("你果然没有让我失望呀,在最后的时刻竟然猜对了"); break; } } else { System.out.println("没有猜对,给个提示你:" + CompareNum(inputStr, sNum)); System.out.println("还可以再猜" + (10 - i) + "次,要抓紧机会哦"); } } } } while (inputStr != null); } catch (Exception e) { System.out.println(e.getMessage()); } } //比较两个数,并返回比较结果 private static String CompareNum(String str1, String str2) { String strTemp = ""; String v1 = "", v2 = ""; for (int i = 1; i <= 4; i++) { v1 = str1.substring(i - 1, i); v2 = str2.substring(i - 1, i); if (v1.equals(v2)) { strTemp += "1"; } else { strTemp += "0"; } } return strTemp; } //取得一个四位随机数 private static String CreateNum() { String strTemp = "";//原来的方法产生四个都是零的机率太高了 strTemp = "" + (int)(Math.random()*10000)%10 + (int)(Math.random()*10000)%10 + (int)(Math.random()*10000)%10 + (int)(Math.random()*10000)%10; return strTemp; } }