搜索字典

Searching a Dictionary

我一直在努力提高我的 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 语句或案例集,或者有什么方法可以更有效地遍历它?

地图是一个相当奇怪的选择,但无论如何它都会起作用。您可以将所有获胜组合存储为 3 个数字,就像您已经拥有的那样,然后循环遍历它们,检查索引中的所有三个值是否匹配。然后通过检查这些值中的任何一个来确定谁赢了。

我建议创建一个 checkWin(int[] indexes) 方法来检查所有 3 个索引和 return true/false 它们是否匹配。然后遍历所有预制的获胜组合以检查是否获胜。