Ищите игру Nibbles, переписанную на C # - PullRequest
8 голосов
/ 05 октября 2010

Я пишу консольное приложение, которое запускает длительные процессы. Поэтому вместо того, чтобы позволить пользователю смотреть на экран в течение нескольких минут, я бы с удовольствием включил свою обработку в фоновый поток и позволил пользователю тем временем поиграть в игру.

Если вы моего возраста, вы наверняка помните игру Nibbles, написанную на QBasic, которая поставлялась с DOS годами. Я помню, как читал несколько лет назад, что кто-то переписал его в режиме консоли C #. Но я не могу найти это. Кто-нибудь знает, где я мог взять это?

1 Ответ

12 голосов
/ 05 октября 2010

Я увидел ваш вопрос и сразу пошел дальше, и перевел оригинал NIBBLES.BAS непосредственно на C #.

Конечно, код полон основностей; в частности, массивы начинаются с 1. Я изменил массивы sammy и colorTable, чтобы они начинались с 0, но не с массива arena (теперь этот индекс имеет неиспользуемый индекс 0).

Многие вещи можно было бы сделать более «правильно» в C # (например, следует использовать перечисления вместо чисел 1,2,3,4 для указаний вверх, вниз, влево, вправо; следует использовать перечисление ConsoleColor вместо целых чисел для цветов).

Хотя я использовал несколько C # -измов: эффект свечения на начальном экране делается в отдельном потоке, так что я могу просто использовать Console.ReadKey() для ожидания ввода пользователя.

Мне пришлось закомментировать код, который устанавливает / отменяет Num Lock, Caps Lock и Scroll Lock, потому что Console в C # позволяет мне только читать их состояние, а не изменять их. Мне бы пришлось использовать WinAPI для этого, что я решил, что было бы слишком.

Все комментарии взяты из оригинала.

РЕДАКТИРОВАТЬ: К настоящему времени готовая версия этого на GitHub. Я изменил приведенную выше ссылку, чтобы перейти на репозиторий github вместо pastebin. Для тех, кто все еще интересуется оригинальной первой версией, вот оригинальная ссылка для вставки .

...