日期:2014-05-20 浏览次数:20889 次
import java.util.Random;
public class GuessAction {
private int[] nums = new int[2];// 声明一个数组用来存放两个随机数
private int count = 1;// 声明一个计数器记录已猜的次数
public int[] getNums() {
return nums;
}
public GuessAction() {
super();
new GuessAction(10);// 默认为随机数[0~10)
}
public GuessAction(int n) {// 取随机产生范围
Random random = new Random();// 实例化随机数类
int randomNum1 = random.nextInt(n);// 将随机产生 和{0~n)的数赋给randomNum1
int randomNum2 = random.nextInt(n);// 将随机产生 和{0~n)的数赋给randomNum2
this.nums[0] = randomNum1;// 给数组赋值
this.nums[1] = randomNum2;
}
/**
* 娄判断结果
*
* @param num1
* ,num2 要判断的数1和数2
* @return 表示得分和次数,-11表示猜的第一个数和第二个数太小,-12表示猜的第一个数太小但第二个数太大,
* -21表示猜的第一个数太大但第二个数太小 ,-22 表示猜的第一个数太大且第二个数太大 ,-01
* 表示第一个数正确但第二个输入的数太小 ,-02 表示第一个数正确第二个数太大 ,-10 表示第一个数太小第二个数太小 ,-20
* 表示第一个数太大但第二个数正确 ,输入 是999返回0,猜对返回分数
*/
public int[] judge(int num1, int num2) {
int[] result = new int[2];// 声明一个返回数组,第一个存得分,第二个存已猜次数
if (999 != num1 && 999 != num2) {
if (num1 < this.nums[0]) {
if (num2 < this.nums[1]) {
result[0] = -11;
this.count++;
} else if (num2 > this.nums[1]) {
result[0] = -12;
this.count++;
} else {
result[0] = -10;
this.count++;
}
} else if (num1 > this.nums[0]) {
if (num2 < this.nums[1]) {
result[0] = -21;
this.count++;
} else if (num2 > this.nums[1]) {
result[0] = -22;
this.count++;
} else {
result[0] = -20;
this.count++;
}
} else if (num1 == this.nums[0]) {
if (num2 < this.nums[1]) {
result[0] = -01;
this.count++;
} else if (num2 > this.nums[1]) {
result[0] = -02;
this.count++;
} else {
if (this.count == 1) {
result[0] = 5;
} else if (this.count == 2) {
result[0] = 3;
} else {
result[0] = 2;
}
}
}
result[1] = this.count;
}
return result;
}
}