我对编码还很陌生,在使用已更改的布尔状态触发器为“发现差异游戏”制作评分系统时遇到了一些问题。
我已经声明了public int并将其用作起始值,那么我所期望的是,当播放器按下设置为透明的图像框时,它会选中CheckBox,因此当CheckBox被选中时,它会减小值等等。
但是,当int的值用尽时,它不会生成显示玩家已完成游戏的消息框。

我已经在下面尝试制作自己的代码:

public partial class FTD_PG : Form
{
    public int Check = 5;

    private void check_1_Click(object sender, EventArgs e)
    {
        this.check_1_stat.Checked = true;
        Check--;
    }

    private void check_3_Click(object sender, EventArgs e)
    {
        this.check_3_stat.Checked = true;
        Check--;
    }

    private void check_2_Click(object sender, EventArgs e)
    {
        this.check_2_stat.Checked = true;
        Check--;
    }

    private void check_4_Click(object sender, EventArgs e)
    {
        this.check_4_stat.Checked = true;
        Check--;
    }

    private void check_5_Click(object sender, EventArgs e)
    {
        this.check_5_stat.Checked = true;
        Check--;
    }

    private void WinState()
    {
        if (Check == 0)
        {
            MessageBox.Show("Congrats you win the game!");
        }
        else
        {
            return;
        }
    }
}


我期望的只是修正评分系统。

提前非常感谢您。

最佳答案

您永远不会调用WinState,这就是它永远不会显示消息框的原因。
添加WinState();每次您递减检查后,它将起作用。

要么

替换Check--;与WinState();并递减并检查该方法以使代码看起来更好:

    private void WinState()
    {
        Check--;
        if (Check == 0)
        {
            MessageBox.Show("Congrats you win the game!");
        }
    }

10-04 18:52