【发布时间】:2014-09-14 22:26:24
【问题描述】:
我想知道是否有办法改进代码以获得,在这种情况下,门(请不要谈论 Windows 窗体和更好的游戏方式,我只是在尝试。)
代码:
Console.WriteLine("\t _____________\t\t" + " _____________\t\t" + " _____________");
Console.WriteLine("\t| _________ |\t\t" + "| _________ |\t\t" + "| _________ |");
Console.WriteLine("\t| | | |\t\t" + "| | | |\t\t" + "| | | |");
Console.WriteLine("\t| | " + input + " | |\t\t" + "| | " + (input + 1) + " | |\t\t" + "| | " + (input + 2) + " | |");
Console.WriteLine("\t| | | |\t\t" + "| | | |\t\t" + "| | | |");
Console.WriteLine("\t| | | |\t\t" + "| | | |\t\t" + "| | | |");
Console.WriteLine("\t| | | |\t\t" + "| | | |\t\t" + "| | | |");
Console.WriteLine("\t| | | |\t\t" + "| | | |\t\t" + "| | | |");
Console.WriteLine("\t| |_______| |\t\t" + "| |_______| |\t\t" + "| |_______| |");
Console.WriteLine("\t| |\t\t" + "| |\t\t" + "| |");
Console.WriteLine("\t()------------|\t\t" + "()------------|\t\t" + "()------------|");
Console.WriteLine("\t| ________ |\t\t" + "| ________ |\t\t" + "| ________ |");
Console.WriteLine("\t| | | |\t\t" + "| | | |\t\t" + "| | | |");
Console.WriteLine("\t| | | |\t\t" + "| | | |\t\t" + "| | | |");
Console.WriteLine("\t| | | |\t\t" + "| | | |\t\t" + "| | | |");
Console.WriteLine("\t| | | |\t\t" + "| | | |\t\t" + "| | | |");
Console.WriteLine("\t| |_______| |\t\t" + "| |_______| |\t\t" + "| |_______| |");
Console.WriteLine("\t|_____________|\t\t" + "|_____________|\t\t" + "|_____________|");
结果:
我正在寻求帮助以获得相同的结果,但代码更好(如果可能的话)。
【问题讨论】:
-
如果您坚持使用 ASCII 艺术,我不知道您是否可以对向控制台写入长行的基本形式做很多事情,但您可以简化它未来,如果您为每种独特类型的线制作方法,然后由另一种方法调用以制作任何大小、数量和输入消息的门,然后在将来您需要制作门时使用该方法。任何其他对象的想法都是一样的。
-
您可以尝试查看
string.Format()或重载Console.WriteLine(string format, params object[] arg)。这可能会使代码更好一些。否则,同意之前的评论,您可能无能为力。 -
我一定会检查你们所说的内容并尝试解决它。
-
如果您指定您正在寻找什么样的“更好”,那将是 +1 问题(已经有最少的代码,预期的结果)......
-
我的意思是@Sam 所取得的成就,一种通用的方法来制作我想要的多少扇门。