我是一名新手C#程序员。我正在通过控制台应用程序创建一个基于文本的冒险游戏。我创建了一个地图命令,当您键入“map”时,它会显示一个带有X标记当前位置的地图。 int变量xCoordinate和yCoordinate用于表示地图上的角色位置,并在键入“go north”或“go south”等命令时变化1。该地图为13x10,因此您的角色可能有130个不同的位置。我编写了130个不同的if语句,它运行得很好。我的问题是是否有更有效/更简单的方法来做到这一点。以下是我的代码:
public static void Map()
{
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine("\n" + xCoordinate + ", " + yCoordinate);
Console.WriteLine("\nTowns are represented by a \"T\". Current location is shown as an \"X\".\n");
Console.ForegroundColor = ConsoleColor.DarkGray;
if ((xCoordinate == -7) && (yCoordinate == -4))
{
Console.Write("[ ][ ][ ][ ][ ][ ][ ][T][ ][ ][ ][ ][ ] 5\n");
Console.Write("[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ] 4\n");
Console.Write("[ ][ ][ ][ ][T][ ][ ][ ][ ][T][ ][ ][ ] 3\n");
Console.Write("[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ] 2\n");
Console.Write("[ ][ ][T][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ] 1\n");
Console.Write("[T][ ][ ][ ][ ][ ][ ][T][ ][ ][ ][T][ ] 0\n");
Console.Write("[ ][ ][ ][ ][T][ ][ ][ ][ ][ ][ ][ ][ ]-1\n");
Console.Write("[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]-2\n");
Console.Write("[ ][ ][T][ ][ ][ ][T][ ][ ][ ][T][ ][ ]-3\n");
Console.Write("[X][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]-4\n");
Console.Write("-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5\n\n");
}
Console.ForegroundColor = ConsoleColor.White;
}
我已经用130个不同的if语句将地图打印了130次,每次X的位置都不同。我认为应该有更好的方法来做到这一点,但我不知道怎么做。