所有 Tic Tac Toe Board 的可能性 - VoidCC VoidCC

我正在尝试使用 Java 中的递归和树在游戏 tic tac toe 中生成所有可能的动作。


我正在使用通用树和递归,我觉得这很困难。但是,树中的第一代应该填充1个点,然后下一代填充2个点,然后下一代填充3个点,然后下一代填充4个点,以此类推。


我的目标是创建一个节点:


       #

      / 

     #-#-#-#-#-#-#-#-#

    / / / / / / / / /

(should be filled) #-#-#-#-#-#-#-#-#

每个子节点有 9 个兄弟节点。每个兄弟姐妹都有 1/9 可能的位置。'X' 或 'O' 交替放置在每一代儿童中(在这 9 个位置中的 1 个位置)。到最后一代,树应该充满 X 和 O。


问题:我的 insertLayer 方法被无限递归调用。当我输入一个计数器来跟踪它的增长方式时,它会卡在 6-8 之间。


繁花如伊
浏览 123回答 1
1回答

HUWWW

此条件始终为真:if (gameBoard[i][j] != 'X' || gameBoard[i][j] != 'O')所以你会永远递归。更改||为&&:if (gameBoard[i][j] != 'X' && gameBoard[i][j] != 'O')或者更好,因为它更清晰更简单:if (gameBoard[i][j] != ' ')注意:这可能不是您唯一的错误,但它是我注意到的最明显和最严重的错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java