2010-10-04 2 views
8

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

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

+3

+1 для ностальгии. –

+0

Только не получите иск от [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) <- Пациент для мини-игры во время экрана загрузки –

+0

lol, есть патент на все сегодня. Просто игнорируйте их. –

ответ

12

Я видел ваш вопрос и сразу же пошел вперед, и перевел оригинальный 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

Это довольно здорово. – AngryHacker

+0

Одна жалоба. Он хорошо работает, если в свойствах окна DOS вы выбрали шрифты Lucida Console. Но если у вас есть выбранные растровые шрифты (которые, по моему мнению, являются стандартными), экран является абсолютным беспорядком. – AngryHacker

+0

@ AngryHacker: Я знаю. Это очень неудачно. Если вы знаете, как это исправить, я хотел бы услышать. Я не знаю, как программно изменить шрифт консоли или даже определить, что такое шрифт. Если бы я мог хотя бы определить это, тогда я мог бы использовать старую кодовую страницу DOS, когда это Растровые шрифты. – Timwi

 Смежные вопросы

  • Нет связанных вопросов^_^