爪哇公牛和奶牛游戏?
对于那些不熟悉的人来说,该游戏是一个数字猜测游戏,其中选择了一个数字(非重复;例如,不选择1223),用户进行猜测并获取信息,确定数字和数字是否正确,数字是否正确但数字不正确,或者数字是否未包含在内http://en.wikipedia.org/wiki/Bulls_and_cows
(例如,选择的数字=>;1234,猜测3789将得到一头牛)
我不想让电脑选择号码,告诉属性和玩家的猜测,我想做相反的事情;我输入一个数字和属性-计算机给出一个可能的数字列表
无论如何,我的方法是:
- 将所有不重复的数字添加到arraylist中
- 删除不满足条件的数字李>
以下是如何处理cow案例:
//Case 5: property is 4 cows;
if (property.equals("040")) {
//delete if numbers don't appear EXACTLY 4 times
if (contains != 4) { numbers.remove(i); }
//removes if the digits of the number tried corresponds with the actual number (Cow!)
else if (n.charAt(0) == first.charAt(0)) { numbers.remove(i); }
else if (n.charAt(1) == second.charAt(0)) { numbers.remove(i); }
else if (n.charAt(2) == third.charAt(0)) { numbers.remove(i); }
else if (n.charAt(3) == fourth.charAt(0)) { numbers.remove(i); }
}
它对奶牛有效。在尝试实施多头策略时,使用这种方法似乎是不可能的我如何为公牛队做一个方法!?我是否需要再创建四个ArrayList并为每个案例进行计算?还是ArrayList不是一条路强>
例如,1234和1bull表示要猜测的数字是1xx、X2XX、XX3X或XXX4,但 我不能使用这种方法,因为它将删除除输入之外的所有数字
谢谢
# 1 楼答案
您可以尝试此算法来解决-
# 2 楼答案
如果代码是1634,用户输入6113,则程序返回4头奶牛,而实际上有3头奶牛
# 3 楼答案
试试这个: