Ich schreibe eine Konsolen-App, die lang laufende Prozesse startet. Anstatt den Benutzer für einige Minuten auf den Bildschirm zu starren, würde ich meine Verarbeitung lieber auf einen Hintergrund-Thread werfen und den Benutzer in der Zwischenzeit ein Spiel spielen lassen.
Wenn du in meinem Alter bist, erinnerst du dich bestimmt an das Nibbles-Spiel, das in QBasic geschrieben wurde und jahrelang mit DOS ausgeliefert wurde. Ich erinnere mich, dass ich vor einigen Jahren gelesen habe, dass jemand es im C # -Konsolenmodus umgeschrieben hat. Aber ich kann es nicht finden. Wer weiß, wo ich es ergattern könnte?
Ich habe Ihre Frage gesehen und sofort weitergemacht und die ursprüngliche NIBBLES.BAS direkt in C # übersetzt.
Natürlich ist der Code voll von Grundbegriffen; Insbesondere Arrays beginnen bei 1. Ich habe die Arrays sammy
und colorTable
so geändert, dass sie bei 0 beginnen, aber nicht im Array arena
(dieses hat jetzt einen unbenutzten Index 0
).
Viele Dinge könnten in C # mehr "richtig" gemacht werden (zB sollte man anstelle der Zahlen 1,2,3,4 wahrscheinlich Enums für Richtungen nach oben, unten, links, rechts verwenden; man sollte das ConsoleColor
enum verwenden anstelle von Ganzzahlen für die Farben).
Ich habe allerdings ein paar Cisms verwendet: Der Sparkle-Effekt auf dem ersten Bildschirm wird in einem separaten Thread ausgeführt, so dass ich einfach Console.ReadKey()
verwenden kann, um auf Benutzereingaben zu warten.
Ich musste den Code auskommentieren, der Num Lock, Caps Lock und Scroll Lock setzt / löscht, weil C # 's Console
nur den Status dieser Variablen lesen, nicht ändern kann. Ich hätte dafür WinAPI verwenden müssen, was ich für übertrieben gehalten hätte.
Alle Kommentare stammen vom Original.
BEARBEITEN: Inzwischen ist die fertige Version auf github. Ich habe den obigen Link geändert, um statt einer Pastebin zum Github-Repo zu gehen. Für diejenigen, die noch an der ursprünglichen ersten Version interessiert sind, hier ist der ursprüngliche Pastebin-Link .