如何让C#烤箱模拟器中切换炉灶状态的if语句仅70%概率执行?
C#烤箱模拟器:实现70%概率关闭炉灶的逻辑
嘿,作为编程新手能写出这样的开关逻辑已经很棒啦!要实现70%概率关闭的需求其实不难,咱们一步步来:
核心思路
我们需要用C#的Random类生成随机数,通过判断随机数的范围来模拟70%的触发概率——简单来说,就是生成0-99的随机数,当数值落在0-69区间时(共70个数值,对应70%概率),才执行关闭炉灶的操作,否则就模拟点火失败。
具体步骤与代码修改
1. 声明全局的Random实例
不要每次点击按钮都新建Random对象,不然短时间连续点击可能会得到重复的随机数。我们把它放在窗体类的所有方法外面:
// 放在窗体类的顶部,所有方法之前 private Random _random = new Random();
2. 修改按钮点击事件逻辑
保留开启炉灶的100%成功逻辑,只修改关闭时的判断:
private void button1_Click(object sender, EventArgs e) { if (button1.Text == "OFF") { // 开启炉灶逻辑保持不变,100%成功 button1.Text = "ON"; pictureBox1.BackgroundImage = Properties.Resources.Ring_Burner_On; } else if (button1.Text == "ON") { // 生成0到99的随机整数(包含0和99) int randomChance = _random.Next(100); // 70%概率触发关闭(0-69共70个数值) if (randomChance < 70) { button1.Text = "OFF"; pictureBox1.BackgroundImage = Properties.Resources.Ring_Burner_Off; } else { // 可选:添加点火失败的提示,更贴近真实场景 MessageBox.Show("哎呀,点火失败了,再试一次吧!"); } } }
代码说明
_random.Next(100):生成0到99的随机数,确保有100种均等的可能性,方便我们对应百分比概率。- 关闭逻辑的判断:
randomChance < 70对应70%的触发概率,如果你想调整概率,比如改成60%,只需要把70改成60就行。 - 提示框是可选的,如果不需要提示,直接删掉else分支的代码,点击后无反应也能模拟点火失败的情况。
内容的提问来源于stack exchange,提问作者Sam Davies
相关产品推荐
相关产品推荐

