我正在制作一个井字游戏,但它只是把 X

I'm making a tic tac toe game but it just puts X

我正在做一个井字游戏,但它只是放了 X。我在不使用母版页的情况下在 Web 表单上进行操作

 bool turn = true;
        int turn_count = 0;
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void bclick(object sender, EventArgs e)
        {
            Button b = (Button)sender;
            if (turn)
            {
                b.Text = "X";
            }
            else
            {
                b.Text = "O";
            }
            turn = !turn;
            b.Enabled = false;
        }
    }
}  

您的代码存在问题,您的页面每次都在回发并且其初始化都变为 true。 你应该为此使用会话。例如内部 Page_Load 方法使用:

Session["Turn"] = true;

并根据内部按钮将其设置为 true 或 false。

像这样。将 turn 存储在 Session 中。请注意,您也会遇到与 turn_count 相同的问题。我真的不明白你要用布尔值去哪里。如果您希望两个不同的玩家在两个浏览器上玩这个游戏,那么您需要做更多的工作来跟踪游戏状态以及哪些玩家在哪个游戏实例中处于活动状态。

protected void bclick(object sender, EventArgs e)
{
    string whosTurn = "X";

    if (!string.IsNullOrEmpty(Session["turn"] as string))
    {
        whosTurn = Session["turn"].ToString();
    }

    if(whosTurn == "X")
    {
        Session["turn"] = "O";
    }
    else
    {
        Session["turn"] = "X";
    }

    Button b = (Button)sender;
    
    b.Text = whosTurn;

    b.Enabled = false;
}