c# - 有没有办法缩短我的代码?

标签 c# console

<分区>

这里是新的 C#er。我正在通过控制台应用程序进行基于文本的冒险。我制作了一个 map 命令,当您键入“ map ”时,它会向您显示一张带有 X 指示您当前位置的 map 。 Int 变量 xCoordinate 和 yCoordinate 用于表示角色在 map 上的位置,并且每当您键入“向北”或“向南”等时都会更改 1。 map 为 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 次 map ,每次 X 都在其他地方。我认为会有更好的方法来执行此操作,但我不知道。

最佳答案

您应该阅读并了解类似 for 的循环.

一些东西

for(var xCoordinate  = -10; xCoordinate  <=10; xCoordinate ++)
{
   for(var yCoordinate = 5; yCoordinate >= 5; yCoordinate --)
   {
      if (xCoordinate  == ... && yCoordinate == ..)
      { 
         Console.Write("[X]");
      }
      else
      { 
         Console.Write("[ ]");
      }
    }
    Console.WriteLine();
}

关于c# - 有没有办法缩短我的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15415825/

相关文章:

c# - 检索 Windows 服务正常运行时间?

c# - 如何将一个控件的属性绑定(bind)到另一个控件?

c# - 检查显示是否被 Windows 电源管理关闭

console - 如何在 Travis CI 中打印到控制台

powershell - PowerShell 中的输出重定向仍然带有颜色

c# - 按下关闭、X、按钮时,不会调用 OnClosing 事件。 Windows Mobile

c# - 在实现接口(interface)以满足 StyleCop 时如何自动化属性/方法 header

c - msys2 如何显示来自非控制台应用程序的控制台输出?

wpf - 类似终端的 WPF 文本框?

python - 如何从Python控制台中删除最后几个字符?