按钮,if语句和bool导致问题 - 无法理解它:(

时间:2016-11-27 00:16:34

标签: c# if-statement button boolean

有一个问题,我一直试图在2小时内完成最好的工作 - 而且我猜它的东西很简单......

开展tic tac toe游戏&得到了大部分工作,在按钮点击等框中添加“X”。 但是,当我检查是否连续有3个时,它似乎没有注册。

                bool winner = false;


            if ((button1.Text == button2.Text) && (button2.Text == button3.Text) && (button1.Equals("X")))
            {
                winner = true;
                if (winner)
                {
                    MessageBox.Show("Awesome");
                }

这似乎根本不起作用。但是,如果我只进行1次更改(在button1.Equals(“X”)之前添加!))),如下所示

                bool winner = false;


            if ((button1.Text == button2.Text) && (button2.Text == button3.Text) && (!button1.Equals("X")))
            {
                winner = true;
                if (winner)
                {
                    MessageBox.Show("Awesome");
                }

它完美地工作(就给我MessageBox.Show(“Awesome”);在我可以玩游戏之前发生,所有的button.text'都是空白的。

只是因为它有所不同,我已经指定了每个按钮在另一个方法中点击了一个值(Button_Click,对象发送器等等)

 public void Button_Click(object sender, EventArgs e)
{
    Button clickedBtn = (Button)sender;
    if (Turn)
    {
        clickedBtn.Text = "X";
    }
    else
    {
        clickedBtn.Text = "O";
    }
    Turn = !Turn;
    clickedBtn.Enabled = false;
}

也 - 创建的所有按钮都是动态的。如下图所示:

Button button1 = new Button();
        button1.Left = 0;
        button1.Top = 0;
        button1.Width = 100;
        button1.Height = 100;
        button1.Click += new EventHandler(Button_Click);

button2& 3以相同的方式应用。 在测试时,我发现这个,当它也应用于按钮1,2和3:

Button button1 = new Button();
        button1.Left = 0;
        button1.Top = 0;
        button1.Width = 100;
        button1.Height = 100;
        button1.Text = "X";
        button1.Click += new EventHandler(Button_Click);

导致事件运行良好! (注意button1.Text =“X”;

任何想法可能是什么问题?

谢谢!

@InBetween我现在编辑了帖子并添加了你需要的更多代码。

1 个答案:

答案 0 :(得分:0)

Button1.Equals("X")总是假的。按钮永远不是字符串“X”。你想做Button1.Text.Equals("X")