首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找字典

问查找字典
EN

Stack Overflow用户
提问于 2015-04-02 09:36:29
回答 1查看 75关注 0票数 0

我一直在努力提高我的Java技能,并决定创建一个本体和交叉游戏。我正在尝试实现获胜的条件,这样游戏就可以判断出"ai“还是”人“是否赢了,并结束了游戏。

数据以键值对的形式存储在HashMap中。整数表示位置,字符串表示它包含的内容。字符串将是""、"O"或"X"。

代表职位的整数:

代码语言:javascript
复制
1 2 3
4 5 6
7 8 9

显示数据库初始化的代码:

代码语言:javascript
复制
Map<Integer, String> database = new HashMap<Integer, String>();

无论如何,我正试图找出搜索本词典的最佳方法,检查以下任何一种获胜条件:

  • 位置1,2,3<-水平方向上的3 "O“或"X”字符串
  • 位置4,5,6<-水平方向上的3 "O“或"X”字符串
  • 位置7、8、9<-水平方向上的3 "O“或"X”字符串
  • 位置1、4、7<--垂直位置的3 "O“或"X”字符串
  • 位置2、5、8<--垂直位置的3 "O“或"X”字符串
  • 3 "O“或"X”字符串位于3、6、9<-垂直位置
  • 位置1、5、9<-对角的3 "O“或"X”字符串
  • 位置3,5,7<-对角的3 "O“或"X”字符串

我是否需要做一个大型嵌套的if语句,或者大小写集,或者有一种更有效的循环方式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-02 09:47:17

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

我建议创建一个checkWin(int[] indexes)方法,该方法将检查所有3个索引,并返回它们是否匹配的true/false。然后循环遍历所有预先制作的获胜组合,以检查是否获胜。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29409619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档