我一直在努力提高自己的Java技能,并决定创建一个Noughts and Crosses游戏。我正在尝试实现胜利条件,因此游戏可以判断“ai”或人类是否赢了,并结束游戏。
数据作为键值对存储在HashMap中。整数是位置,字符串是它包含的内容。该字符串将为""
,"O"
或"X"
。
表示位置的整数:
1 2 3
4 5 6
7 8 9
显示数据库初始化的代码:
Map<Integer, String> database = new HashMap<Integer, String>();
无论如何,我正在尝试找出搜索这本词典的最佳方法,检查以下任何一个胜利条件:
我是否必须执行大型嵌套if语句或大小写集,或者有没有办法可以更有效地遍历这个?
答案 0 :(得分:1)
地图是一个相当奇怪的选择,但它无论如何都会起作用。你可以将所有获胜组合存储为3个数字,就像你已经拥有的那样,然后循环遍历它们,检查索引中的所有三个值是否匹配。然后通过检查任何这些值来确定谁赢了。
我建议创建一个checkWin(int[] indexes)
方法来检查所有3个索引,并返回true / false以确定它们是否匹配。然后循环完成所有预先制作的获胜组合以检查获胜。