【问题标题】:c# Lottery looping program with Visual Studioc# 使用 Visual Studio 的彩票循环程序
【发布时间】:2019-04-10 10:04:20
【问题描述】:

我目前正在尝试弄清楚如何在 Visual Studio 中创建一个程序,该程序匹配文本框中给出的 3 个数字 1-9,列表框中有 3 个随机生成的数字。我无法弄清楚如何编写一个 WHILE 循环语句,该语句将允许我的列表框一次随机生成 3 个数字,如果没有匹配则继续,但如果有匹配则中断,最多 1000 次尝试.我对如何做到这一点有点迷茫。感谢您的帮助。

        private void LuckyButton_Click(object sender, EventArgs e)
    {
        Random RandomNumber = new Random();
        string newLine = Environment.NewLine;
        int Winning1 = 0;
        int Winning2 = 0;
        int Winning3 = 0;
        int numbers = RandomNumber.Next(10);

        int.TryParse(WinningNumber1.Text, out Winning1);
        int.TryParse(WinningNumber2.Text, out Winning2);
        int.TryParse(WinningNumber3.Text, out Winning3);


        if (Winning1 <= 0 || Winning2 <= 0 || Winning3 <= 0)
        {
            MessageBox.Show("Enter a number!");
            return;
        }

        while (numbers <= 1000)
        {
            numbers = RandomNumber.Next(10);
        }

    }

【问题讨论】:

  • 它应该在三场比赛中的 any 场比赛中中断一次?还是三个?
  • 另外,澄清这是否是家庭作业可能是值得的。 “这是作业”和稍后的“我将删除这个问题,尽一切努力帮助浪费时间”之间似乎有很强的相关性。
  • @mjwills 一旦他们三个都匹配
  • 要真正让它随机化,您应该更改创建Random 的位置,因为它不像人们希望的那样随机。
  • 您需要通过多一点思考——远离键盘。如果用户已经选择了 3 个号码,为什么还需要选择 1000?此外,您并没有限制欺骗 - 通常是选择 X 个不同的数字。最简单的方法是创建一个 1-1000 的池,将它们洗牌并取三个

标签: c# visual-studio loops random boolean


【解决方案1】:

看看对你有没有帮助:

 private void LuckyButton_Click(object sender, EventArgs e)
    {
        Random RandomNumberGenerator = new Random();
        string newLine = Environment.NewLine;
        int Winning1 = 0;
        int Winning2 = 0;
        int Winning3 = 0;
        int randomNumber = RandomNumberGenerator.Next(10);
        int counter = 0;
        int winnerId = 0;


        int.TryParse(WinningNumber1.Text, out Winning1);
        int.TryParse(WinningNumber2.Text, out Winning2);
        int.TryParse(WinningNumber3.Text, out Winning3);


        if (Winning1 <= 0 || Winning2 <= 0 || Winning3 <= 0 ||
            Winning1 > 10 || Winning2 > 10 || Winning3 > 10)
        {
            MessageBox.Show("Invalid Number!");
            return;
        }

        while (counter < 1000)
        {
            if (Winning1 == randomNumber)
            {
                winnerId = 1;
                break;
            }
            else if (Winning2 == randomNumber)
            {
                winnerId = 2;
                break;
            }
            else if (Winning3 == randomNumber)
            {
                winnerId = 3;
                break;
            }
            randomNumber = RandomNumberGenerator.Next(10);
            counter++;
        }

        if(winnerId != 0)
        {
            MessageBox.Show("Number " + winnerId + " wins!");
        }
        else
        {
            MessageBox.Show("no one wins!");
        }
    }

【讨论】:

  • 这个答案可能需要一些解释。丢掉一段没有注释的代码就像一个没有任何代码的问题一样糟糕。
  • 是的!谢谢!这实际上有很大帮助!
猜你喜欢
  • 2021-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 2015-11-26
  • 1970-01-01
  • 2012-10-17
  • 1970-01-01
相关资源
最近更新 更多