我对编码还很陌生,当我使用已更改的布尔状态触发器为我的“发现差异游戏”制作评分系统时遇到了一些问题。
我已经声明了public int
并将其用作起始值,那么我所期望的是,当播放器按下我设置为透明的图像框时,它选中了CheckBox,因此当CheckBox被选中时,它会减小int
值,依此类推。
但是当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;
}
}
}
我期望的只是修正评分系统,就是这样。
非常感谢您。
答案 0 :(得分:0)
您永远不会调用WinState,这就是它永远不会显示消息框的原因。 添加WinState();每次递减Check后,它就会起作用。
或
替换检查-;与WinState();然后递减并检查该方法以使代码看起来更好:
private void WinState()
{
Check--;
if (Check == 0)
{
MessageBox.Show("Congrats you win the game!");
}
}
答案 1 :(得分:0)
我将使用Dictionary将每个PictureBox与其各自的CheckBox相关联。此外,我将所有PictureBoxes的Click()事件连接到Form的Load()事件中的同一处理程序。您可以使用建立的命名模式来搜索控件。单击每个控件后,将其从“词典”中删除。当词典为空时,游戏已获胜:
`<a class="btn btn-primary" href="{{ route('file-download',['id'=>1]) }}">Download</a>