日期:2014-05-20 浏览次数:20678 次
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; } }