奇人軼事鑑賞(?)
================================
import java.io.*;
public class guessNumber {
public static void main(String[] args) throws IOException {
boolean[] p = new boolean[10000];
for(int i=0; i<p.length; i++)
p[i] = notDuplicated(i);
boolean done = false;
int g=0;
for(int i=1; !done; i++) {
g = takeANumber(p);
System.out.println("第"+i+"次猜 "+convertToString(g));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("A = ");
int a = Integer.parseInt(br.readLine());
done = a==4;
System.out.print("B = ");
int b = Integer.parseInt(br.readLine());
for(int j=0; j<p.length; j++)
if(p[j]==true)
p[j] = isCandidate(j,g,a,b);
}
System.out.println("您的數字是 "+g);
}
static boolean notDuplicated(int i) {
char[] m = convertToString(i).toCharArray();
boolean status = true;
for(int j=0; j<m.length-1; j++) {
char c = m[j];
for(int k=j+1; k<m.length; k++) {
if(c==m[k])
status = false;
}
}
return status;
}
static int takeANumber(boolean[] p) {
for(int i=0; i<p.length; i++)
if(p[i])
return i;
return 0;
}
static boolean isCandidate(int j, int g, int a, int b) {
char[] c1 = convertToString(j).toCharArray();
char[] c2 = convertToString(g).toCharArray();
for(int i=0; i<c1.length; i++)
if(c1[i]==c2[i])
a--;
for(int i=0; i<c1.length; i++)
for(int k=0; k<c2.length; k++)
if(i!=k && c1[i]==c2[k])
b--;
return ((a==0)&(b==0));
}
static String convertToString(int g) {
String s = ""+g;
int l = 4-s.length();
for(int i=0; i<l; i++)
s = "0"+s;
return s;
}
}
================================
好一個彈幕遊戲....(沒記錯是真的有這款同人作)