发布
社区首页 >问答首页 >Tic Tac Toe -查找空格格瓦片

Tic Tac Toe -查找空格格瓦片
EN

Stack Overflow用户
提问于 2013-03-26 09:23:54
回答 1查看 1.6K关注 0票数 0

这是我之前关于tic tac toe游戏的问题的继续。我正在制作一个函数,它将收集一个tic tac toe板的所有空网格瓦片,并将它们返回到一个列表中。此函数将是递归的,因为它将继续查找与所做的移动相邻的空网格瓦片。如下所示:

代码语言:javascript
代码运行次数:0
复制
<------->
< X O - >
< - - X >
< O X - >
<------->

因此,假设用户(或者在本例中,是我为计算机编写的代码)想要通过选择一个瓦片来了解哪些网格瓦片是空的。对于上面的示例,将对切片进行编号

代码语言:javascript
代码运行次数:0
复制
0 1 2
3 4 5 
6 7 8

因此,假设计算机选择了磁贴1-它将搜索相邻的磁贴(因此,在这种情况下,顶部、左侧、右侧和底部),并查看是否可以移动到那里。如果它发现相邻的瓦片是空的,它也会查找该瓦片的相邻瓦片,直到它耗尽所有可能性。因此,我希望能够使用当前面板和playerMove调用我的函数,并找到相邻的空tiles,并将它们附加到一个列表中。有什么建议吗?

代码语言:javascript
代码运行次数:0
复制
def whatIsEmpty(moveList,move):
     emptyTiles = []
     #something that allows you to find the adjacent tiles of the move
     #something that allows you to find the adjacent tiles of the tiles found above, until all are found

我知道我需要几个for循环来完成这个任务,但是我不确定如何开始。我所知道的是,我想要在一个虚构的3x3网格的中间移动,并找到它的相邻瓦片,看看它们是否是空的,依此类推。因此,在2D列表中,我将使用如下内容:

代码语言:javascript
代码运行次数:0
复制
moveList[x-1][y]
moveList[x][y+1]
moveList[x+1][y]
moveList[x][y+1]

其中每一个都对应于顶部、右侧、左侧和底部,这将被递归使用。任何建议都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2013-03-26 09:33:41

在这种情况下,递归策略可能不是最好的。考虑一下您自己提供的示例:

代码语言:javascript
代码运行次数:0
复制
<------->
< X O - >
< - - X >
< O X - >
<------->

假设下一步是在中间的块中进行的。如果递归函数只检查与其相邻的四个瓦片,那么它将错过与其余瓦片“切断”的瓦片(右下角的瓦片)。如果你要编写一个函数来检查所有8个相邻的瓦片(包括对角相邻的),你可能会迭代地编写它。

代码语言:javascript
代码运行次数:0
复制
for i in range(3):
   for j in range(3):
      pass # Replace with code to add empty tile to list
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15627749

复制
相关文章

相似问题

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