我正在编写一个控制台应用程序,它将启动长时间运行的进程。因此,与其让用户盯着屏幕几分钟,我更愿意将我的处理放在后台线程上,同时让用户玩游戏。
如果你是我这个年纪,你肯定记得用 QBasic 编写的 Nibbles 游戏,它随 DOS 发行多年。我记得几年前读过有人用 C# 控制台模式重写了它。但我找不到它。有谁知道我在哪里可以抓到它?
我看到了你的问题,立即将原来的 NIBBLES.BAS 直接翻译成 C#。
当然,代码中充满了基本主义;特别是,数组从 1 开始。我更改了sammy
andcolorTable
数组,使它们从 0 开始,但不是arena
数组(这个数组现在有一个未使用的索引0
)。
许多事情可以在 C# 中更“正确”地完成(例如,可能应该使用枚举而不是数字 1、2、3、4 来表示上、下、左、右的方向;应该使用ConsoleColor
枚举而不是整数来表示颜色)。
不过,我确实使用了一些 C#isms:初始屏幕上的闪光效果是在单独的线程中完成的,因此我可以Console.ReadKey()
用来等待用户输入。
我不得不注释掉设置/取消设置 Num Lock、Caps Lock 和 Scroll Lock 的代码,因为 C#Console
只允许我读取它们的状态,而不是更改它们。我将不得不为此使用 WinAPI,而我认为这已经超出了顶峰。
所有评论均来自原文。
编辑:到目前为止,这个的完成版本在 github 上。我已将上面的链接更改为转到 github 存储库而不是 pastebin。对于那些仍然对原始第一个版本感兴趣的人,这里是原始的 pastebin 链接。