Tic Tac Toe代码不起作用

时间:2013-02-10 09:28:07

标签: objective-c

我在xcode中做了一个tic tac toe游戏。这是我的代码

    - (IBAction)c1Button:(id)sender {
if ((status.text = @"X goes now"))
{
    c1.text = @"X";
    if ([c1.text isEqualToString: @"X"])
    {
        status.text = @"O goes now";
    }
    else
    {
        status.text = @"X goes now";
    }
}
else if ((status.text = @"O goes now"))
{
    c1.text = @"O";
    if ((c1.text = @"O"))
    {
        status.text = @"X goes now";
    }
    else
    {
        status.text = @"O goes now";
    }
}
}

单击第一个单元格时,X应该出现。并且状态标签现在变为O.但是当单击单元格时,它仍会写入X而不是O.出了什么问题?

1 个答案:

答案 0 :(得分:3)

在第一个if语句中,您将其指定为字符串而不是比较它。这样:

if ((status.text = @"X goes now"))

应该是:

if ([status.text isEqualToString:@"X goes now"])

第二个陈述也是如此。

此外,最好保持状态(作为整数或布尔值),而不是每次都使用标题来解析状态。

#define X_TURN    0
#define O_TURN    1


// ....

if (turn == X_TURN)
{
    c1.text = @"X";
    status.text = @"O goes now";
    turn = O_TURN;
}
else
{
    c1.text = @"O";
    status.text = @"X goes now";
    turn = X_TURN;
}