我正在编写一个控制台应用程序,它将启动长时间运行的进程。所以,不要让用户盯着屏幕几分钟,我很乐意将我的处理工作放在后台线程上,让用户同时玩游戏。
如果你是我的年龄,你一定记得用DOS随附多年的QBasic写的Nibbles游戏。我记得几年前读过有人在C#控制台模式下重写了它。但我找不到它。有谁知道我可以抓住它?
答案 0 :(得分:12)
我看到了你的问题并立即继续,将原来的NIBBLES.BAS直接翻译成C#。
当然,代码充满了Basicisms;特别是,数组从1开始。我更改了sammy
和colorTable
数组,使它们从0开始,但不是arena
数组(这个数组现在有一个未使用的索引{{ 1}})。
在C#中可以更“正确”地完成许多事情(例如,一个应该使用枚举而不是数字1,2,3,4用于向上,向下,向左,向右的方向;一个应该使用{{1}枚举而不是颜色的整数。)
我确实使用了一些C#主题:初始屏幕上的闪光效果是在一个单独的线程中完成的,这样我就可以使用0
来等待用户输入。
我必须注释掉设置/取消设置Num Lock,Caps Lock和Scroll Lock的代码,因为C#的ConsoleColor
只能让我读取它们的状态,而不是更改它们。我本来不得不使用WinAPI,我认为它已经超过了顶部。
所有评论均来自原文。
编辑:到目前为止,已完成的版本是在github上。我已经将上面的链接更改为github repo而不是pastebin。对于那些仍对原始第一版感兴趣的人here’s the original pastebin link。