我试图在游戏中生成所有可能的动作,使用递归和java中的树。
我使用的是通用树和递归,我觉得这是很难的。然而,树中的第一代应该填充1个斑点,然后下一代填充2个斑点,然后下一代填充3个点,然后下一代填充4个点,等等。
我的目标是创建一个节点:
#
/
#-#-#-#-#-#-#-#-#
/ / / / / / / / /
(should be filled) #-#-#-#-#-#-#-#-#每个子节点有9个兄弟节点。每个兄弟姐妹都有1/9可能的位置。一个'X‘或'O’是交替的,并放置在每个新一代的孩子(在这9个点中的一个)。到最后一代,树应该充满X和O's。
麻烦:我的insertLayer方法被递归地称为无限。当我输入一个计数器来跟踪它是如何增长的时,它被卡在6-8之间。
发布于 2018-10-11 17:56:01
这个条件总是正确的:
if (gameBoard[i][j] != 'X' || gameBoard[i][j] != 'O')所以你会永远回溯。
将||更改为&&
if (gameBoard[i][j] != 'X' && gameBoard[i][j] != 'O')或者更好,因为它更清晰、更简单:
if (gameBoard[i][j] != ' ')注意:这可能不是您唯一的错误,但这是我注意到的最明显和最严重的错误。
https://stackoverflow.com/questions/52766058
复制相似问题