簡體   English   中英

如何在 c# 中找到隨機生成的 int 的最后一個值?

[英]How do I find the last value of a randomly generated int in c#?

我試圖在 .NET Core 控制台應用程序中找到我的播放器的 X 和 Y 的最后位置。

每次我按 W、A、S 或 D 時,它都會在 1000 像素 x 1000 像素的地圖中隨機生成位置(A 和 D 代表 X 值,W 和 S 代表 Y 值)。 問題是每次它說最后一個值時,只有 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);

因為每次按下 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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM