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;
}
}