I am writing a console app that would be kicking off long running processes. So rather than let the user stare at the screen for several minutes, I'd love to throw my processing on a background thread and let the user play a game meanwhile.
If you are my age, you definitely remember the Nibbles game written in QBasic that shipped with DOS for years. I remember reading several years ago that someone rewrote it in C# console mode. But I can't find it. Anyone know where I could grab it?
I saw your question and immediately went ahead and translated the original NIBBLES.BAS directly into C#.
Of course, the code is full of Basicisms; in particular, arrays start at 1. I have changed the
colorTable arrays so that they start at 0, but not the
arena array (this one now has an unused index
Many things could be done more “properly” in C# (e.g. one should probably use enums instead of the numbers 1,2,3,4 for directions up,down,left,right; one should use the
ConsoleColor enum instead of integers for the colors).
I did use a few C#isms though: the sparkle effect on the initial screen is done in a separate thread so that I can just use
Console.ReadKey() to wait for user input.
I had to comment out the code that sets/unsets Num Lock, Caps Lock and Scroll Lock because C#’s
Console only lets me read the state of those, not change them. I would have had to use WinAPI for this, which I decided would have been over the top.
All the comments are from the original.
EDIT: By now the finished version of this is on github. I’ve changed the above link to go to the github repo instead of a pastebin. For those still interested in the original first version, here’s the original pastebin link.