Tic Tac Toe阻止用户进入拍摄地点

时间:2015-12-16 21:04:33

标签: c

int main (void)
{
    char tttarray[3][3] = {
        {'1','2','3'},
        {'4','5','6'},
        {'7','8','9'}
    };


    int turn = 0,i,j,loc;
    char XO;

    while(turn<=9)
    {
        printf("Enter (x) or (o): ");
        scanf("%c",&XO);
        getchar();
        printf("Enter number: ");
        scanf("%d", &loc);

        j = (loc - 1)%3;
        i = (loc - 1)/3;

        if(tttarray[i][j] == 'x' || 'o')
        {
            return(0);
            printf("That spot has been taken!\n");
        }


        tttarray[i][j] = XO;
        printArray(tttarray);

    }

}

我只是为了方便而显示主要代码。我的问题在于这一部分:

if(tttarray[i][j] == 'x' || 'o')
{
    return(0);
    printf("That spot has been taken!\n");
}

这是因为它似乎总是如此,这阻止了玩家在那里放置'x''o'。我在上面的代码中遗漏了什么吗?如何防止用户进入占用空间?

1 个答案:

答案 0 :(得分:4)

你不能像你那样链接逻辑OR运算符。你需要改变

 if(tttarray[i][j] == 'x' || 'o')

if((tttarray[i][j] == 'x') || (tttarray[i][j] =='o'))

那就是说,return陈述后的陈述没有任何意义。控件永远不会到达printf()条件中的if。也许你想要的是使用

  • printf()声明
  • continue;
按照这个顺序