【问题标题】:How do I find the last value of a randomly generated int in c#?如何在 c# 中找到随机生成的 int 的最后一个值?
【发布时间】:2020-10-30 14:32:15
【问题描述】:

我正在尝试在 .NET Core 控制台应用程序中查找我的播放器 X 和 Y 的最后位置。

每次我按 W、A、S 或 D 时,它都会在 1000 x 1000 像素的地图中随机生成位置(X 值是 A 和 D,Y 值是 W 和 S)。问题是每次它说最后一个值时,只有 Y 值是正确的,而 X 仍然是随机的。

如何在 c# 中找到随机生成的 int (对于 X 和 Y 值)的最后一个值?

do
            {             
                targetPos = Console.ReadKey(true);

                if (targetPos.Key != ConsoleKey.Q)
                {
                    playerX = r.Next(0, 1000);
                    playerY = r.Next(0, 1000);
                }

                Console.WriteLine(" ");
                switch (targetPos.Key)
                {
                    case ConsoleKey.D:
                        playerX++;
                        Console.WriteLine("Right - Position X: {0} ", playerX);
                        Console.WriteLine();
                        break;

                    case ConsoleKey.A:
                        playerX--;
                        Console.WriteLine("Left - Position X: {0} ", playerX);
                        Console.WriteLine();
                        break;

                    case ConsoleKey.S:
                        playerY--;
                        Console.WriteLine("Down - Position Y: {0} ", playerY);
                        Console.WriteLine();
                        break;

                    case ConsoleKey.W:
                        playerY++;
                        Console.WriteLine("Up - Position Y: {0} ", playerY);
                        Console.WriteLine();
                        break;

                    case ConsoleKey.Q:
                        Console.WriteLine("\nLast Position X: {0}", playerX);
                        Console.WriteLine("\nLast Position Y: {0}", playerY);
                        Environment.Exit(0);
                        break;
                }
                Console.WriteLine(targetPos.Key.ToString());
            } while (targetPos.Key != ConsoleKey.Escape);

【问题讨论】:

  • 我不清楚您真正期望什么功能。你能举一个预期输入和输出的例子吗?
  • 是的,当然。我需要创建一个算法,将角色的位置逐帧从位置 (0,0) 移动到地图中 1000px x 1000px 的目标随机位置。这是控制台中的输出:i.imgur.com/RMJveza.png
  • 我想要的是这样的:i.imgur.com/e1GjG1q.png
  • 您的问题是每个按键都不是QplayerxplayerY 生成全新的随机值。似乎你只想随机生成相应的位置(所以当AD 被按下时playerXplayerYWS 被按下时)所以删除在@ 时运行的块987654333@ 并在您的switch 中的相应键内添加正确的随机生成行@
  • 不客气。祝你的项目好运!

标签: c# random


【解决方案1】:

因为每次按下除 Q 之外的键时,x 和 y 都会变得随机。我猜你想要的是当按 A 或 D 时随机 x 位置,当按 W 或 S 时随机 y 位置,所以代码应该是:

switch (targetPos.Key)
{
    case ConsoleKey.D:
    case ConsoleKey.A:
        playerX = r.Next(0, 1000);
        break;
    case ConsoleKey.W:
    case ConsoleKey.S:
        playerY = r.Next(0, 1000);
        break;
}

【讨论】:

    猜你喜欢
    • 2019-10-20
    • 2022-01-05
    • 2011-12-14
    • 1970-01-01
    • 2013-01-06
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多