【问题标题】:Shuffle 1 through 4 number without repeating and comparing to user input [duplicate]随机播放 1 到 4 的数字,不重复并与用户输入进行比较[重复]
【发布时间】:2015-03-09 02:25:48
【问题描述】:

我已经四处寻找解决方案,但我无法理解那些复杂详细的算法,因为我在 c# 中相当新,现在我正在尝试创建这个程序。 我希望随机数生成器生成 1 到 4 并且它不会重复相同的数字 到 4 个不同的文本框,但是当我执行如下代码时:-

        Random random = new Random();
        var numberNo = Enumerable.Range(1, 4);
        var shuffled = numberNo.OrderBy( a => random.NextDouble());
        txtrnd1.Text = String.Join("",shuffled);
        txtrnd2.Text = String.Join("",shuffled);
        txtrnd3.Text = String.Join("",shuffled);
        txtrnd4.Text = String.Join("",shuffled);

我获得的结果是(对于 4 个文本框:textbox1 将显示“1342”,textbox2 将显示“1234”等)在文本框中 但我想要的 4 个文本框的结果是(例如,文本框 1 将显示“1”,文本框 2 将显示“2”等)在 4 个不同的文本框中,以便我可以将它与我在另一个文本框中执行的用户输入进行比较我的程序

        int intrandomnumber1;
        Random randomnumber = new Random();
        intrandomnumber1 = randomnumber.Next(1, 10);
        userinput1.Text = Convert.ToString(intrandomnumber1);

提前感谢任何帮助和感谢!

【问题讨论】:

  • 你完全改变了问题!
  • 对不起,我没说清楚q_q

标签: c# random shuffle


【解决方案1】:

如果您查看每个文本框中的文本,您会注意到它们都包含 1-4 的完整列表,随机排列。因此,您应该遍历shuffled 一次以获取您的列表。

最简单的方法是从可枚举中创建一个System.Collections.Generic.List<int>

List<int> shuffledList = new List<int>(shuffled);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多