我正在尝试使用 Java 中的递归和树在游戏 tic tac toe 中生成所有可能的动作。我正在使用通用树和递归,我觉得这很困难。但是,树中的第一代应该填充1个点,然后下一代填充2个点,然后下一代填充3个点,然后下一代填充4个点,以此类推。我的目标是创建一个节点: # / #-#-#-#-#-#-#-#-# / / / / / / / / /(should be filled) #-#-#-#-#-#-#-#-#每个子节点有 9 个兄弟节点。每个兄弟姐妹都有 1/9 可能的位置。'X' 或 'O' 交替放置在每一代儿童中(在这 9 个位置中的 1 个位置)。到最后一代,树应该充满 X 和 O。问题:我的 insertLayer 方法被无限递归调用。当我输入一个计数器来跟踪它的增长方式时,它会卡在 6-8 之间。
1 回答
HUWWW
TA贡献1874条经验 获得超12个赞
此条件始终为真:
if (gameBoard[i][j] != 'X' || gameBoard[i][j] != 'O')
所以你会永远递归。
更改||
为&&
:
if (gameBoard[i][j] != 'X' && gameBoard[i][j] != 'O')
或者更好,因为它更清晰更简单:
if (gameBoard[i][j] != ' ')
注意:这可能不是您唯一的错误,但它是我注意到的最明显和最严重的错误。
添加回答
举报
0/150
提交
取消