gpt4 book ai didi

c# - 使用 ReadKey() 在数组中移动

转载 作者:太空宇宙 更新时间:2023-11-03 17:00:59 28 4
gpt4 key购买 nike

一开始我会说我是 C# 和编程的新手。尝试尽可能多地学习一个人。我的第一个学习项目很简单。使用“W、S、A、D”在 10x10 阵列中移动。这是让用户通过阵列移动他的角色的“游戏”。问题是只要他的位置超出范围,我就希望“我的角色”移动。所以我想我正在尝试制作 infitive 循环,它是打印位置并让我们继续前进。例如,如果我使用 do{}while(true),则在按下一个键后位置一直在变化。我正在寻找建议,我应该如何为这种“运动”构建循环。我附上了负责移动角色的代码。

int axisx = 0;

int axisy = 0;
var movement = Console.ReadKey();
int[,] level = new int[10, 10];
if (movement.Key.ToString() == "W"){axisy = axisy+1;}
else if (movement.Key.ToString() == "S"){axisy = axisy-1;}
else if (movement.Key.ToString() == "D"){axisx = axisx+1;}
else if (movement.Key.ToString() == "A"){axisx = axisx-1;}
Console.WriteLine("{2} is on position:{0},{1}", axisx, axisy, Player1.getBuilderName());

if (movement.Key == ConsoleKey.Escape)
{
Console.WriteLine("You pressed Escape, Goodbye");
}

最佳答案

您可以使用 while(true) 循环:

int 轴 x = 0; int 轴 = 0;

while (true)
{
var movement = Console.ReadKey();
if (movement.KeyChar == 'W' || movement.KeyChar == 'w')
{
axisy += 1;
}
else if (movement.KeyChar == 'S' || movement.KeyChar == 's')
{
axisy -= 1;
}
else if (movement.KeyChar == 'D' || movement.KeyChar == 'd')
{
axisx += 1;
}
else if (movement.KeyChar == 'A' || movement.KeyChar == 'a')
{
axisx -= 1;
}
Console.WriteLine("{2} is on position:{0},{1}", axisx, axisy, Player1.getBuilderName());

if (movement.Key == ConsoleKey.Escape)
{
Console.WriteLine("You pressed Escape, Goodbye");
break;
}
}

休息;在 ConsoleKey.Escape block 中将使您脱离循环。您还可以使用 movement.KeyChar 而不是 movement.Key.ToString(),字符串在 .NET 中是不可变的,因此每次执行 ToString() 时都会创建一个新字符串。

关于c# - 使用 ReadKey() 在数组中移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33557808/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com