Я видел ваш вопрос и сразу же пошел вперед, и перевел оригинальный NIBBLES.BAS прямо в C#.
Конечно, код полон Basicisms; в частности, массивы начинаются с 1. Я изменил массивы sammy
и colorTable
так, чтобы они начинались с 0, но не с массивом arena
(теперь у него есть неиспользованный индекс 0
).
Многие вещи могут быть сделаны более «правильно» в C# (например, вероятно, следует использовать перечисления вместо чисел 1,2,3,4 для направлений вверх, вниз, влево, вправо; вместо этого следует использовать перечисление ConsoleColor
целых чисел для цветов).
Я использовал несколько C# isms: эффект искривления на начальном экране выполняется в отдельном потоке, так что я могу просто использовать Console.ReadKey()
для ожидания ввода пользователем.
Мне пришлось прокомментировать код, который устанавливает/unsets Num Lock, Caps Lock и Scroll Lock, потому что C# Console
только позволяет мне читать состояние тех, но не изменять их. Мне пришлось бы использовать WinAPI для этого, и я решил, что это было бы сверху.
Все комментарии взяты с оригинала.
EDIT: К настоящему времени готовая версия находится на github. Я изменил приведенную выше ссылку, чтобы перейти в репозиторий github вместо пастебина. Для тех, кто по-прежнему интересуется оригинальной первой версией, here’s the original pastebin link.
+1 для ностальгии. –
Только не получите иск от [namco] (http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l = 50 & s1 = 5718632.PN. & OS = PN/5718632 & RS = PN/5718632) <- Пациент для мини-игры во время экрана загрузки –
lol, есть патент на все сегодня. Просто игнорируйте их. –