use*_*733 0 c arrays recursion char tic-tac-toe
我正在用C语写Tic-tac-toe,我在游戏板上放置一个标志的功能有问题.这是代码:
int aiPutSign(int difficultyLevel, char board[])
{
if(difficultyLevel == 1)
{
srand(time(NULL));
int field = rand() % 9;
return board[field] == ' ' ? field : aiPutSign(difficultyLevel, board);
} else if(difficultyLevel == 2)
{
//to do
return 2;
} else if(difficultyLevel == 3)
{
//to do
return 3;
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我得到了分段错误错误.我只知道递归有一个问题,它会导致错误,但我不知道这是怎么回事以及如何修复它.
简而言之:board是9个字符的数组,拥有9个空格,每个玩家每次移动后都会在其中放置X和O符号.如果玩家(这里是计算机AI)试图在已经填充的字段上放置标志,则递归递增并且rand()生成另一个字段数.