我正在写一个控制台应用程序,它将启动长时间运行的进程。因此,与其让用户盯着屏幕看几分钟,我更愿意将我的处理过程抛到后台线程上,让用户在此期间玩游戏。
如果你是我的同龄人,你肯定还记得用QBasic编写的多年来随DOS一起发布的Nibble游戏。我记得几年前读到有人在C#控制台模式下重写了它。但是我找不到它。有谁知道我在哪能买到吗?
发布于 2010-10-05 08:08:59
我看到了你的问题,立即继续,将原始的NIBBLES.BAS直接翻译成C#。
当然,代码充满了基本原理;特别是数组从1开始。我更改了sammy和colorTable数组,使它们从0开始,但不是arena数组(这个数组现在有一个未使用的索引0)。
在C#中,许多事情可以做得更“恰当”(例如,向上、向下、向左、向右的方向应该使用枚举而不是数字1、2、3、4;颜色应该使用ConsoleColor枚举而不是整数)。
不过,我确实使用了一些C#isms :初始屏幕上的闪光效果是在一个单独的线程中完成的,这样我就可以使用Console.ReadKey()等待用户输入。
我不得不注释掉设置/取消设置Num Lock、Caps Lock和Scroll Lock的代码,因为C#的Console只允许我读取它们的状态,而不是更改它们。为此,我不得不使用WinAPI,我认为这太过分了。
所有的评论都来自原文。
github EDIT:现在已经在github上完成了这个版本。我已经更改了上面的链接,转到github代码库,而不是粘贴箱。对于那些仍然对最初的第一个版本感兴趣的人,here’s the original pastebin link。
https://stackoverflow.com/questions/3859135
复制相似问题