Snake 1.0
Скриншот программы Snake
Мой вариант игры "Змейка". Правила простые: вам нужно управлять змейкой, чтобы собирать яблоки, случайно появляющиеся на игровом поле. Каждое съеденное яблоко увеличивает длину змейки. Нельзя врезаться в стены и пересекаться со своим хвостом. Курсорные стрелочки - движение, Esc - пауза. Игра написана ради удовольствия за пару обеденных перерывов.
Просмотров: 2822 | Комментариев: 31
Метки: мои программы, игры
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(15.05.2021 в 10:31):
Так давно бы поправил, если бы удалось воспроизвести локально. По ноуте с XP все работает как надо, никаких вылетов.
rtfm
(15.05.2021 в 08:01):
Спасибо за забавный пример.
Заинтересовало, отчего он не запускается на WinXp...
Без каких-либо эксепшенов исполнение исполнение идет прямиком к ExitProcessю Занавес.
В шаблоне окна в ресурсах ничего странного не заметил (все стили – Win2k+).
Но при создании диалога из ресурсов все ломается внутри CreateWindowEx.
Отчего-то первый вызов CreateWindowExW проходит успешно, окно создается, но пока невидимо.
А второй (не совсем понял, зачем он) – молча делает что-то не то и, в итоге, выполняет DestroyWindow.
Стак 1-го выхова:
user32._VerNtUserCreateWindowEx
user32._InternalCreateDialog
user32._InternalDialogBox
user32._DialogBoxIndirectParamAorW
user32._DialogBoxParamA
kernel32._BaseProcessStart
Стак 2-го:
user32._VerNtUserCreateWindowEx
user32._CreateDialogIndirectParamAorW
user32._InternalDialogBox
user32._DialogBoxIndirectParamAorW
user32._DialogBoxParamA
kernel32._BaseProcessStart
Вот так и появлется несовместимость на ровном, казалось бы, месте ? :)
Если будет минтука, гляньте, pls, в чем дело. Просто любопытно.
Заинтересовало, отчего он не запускается на WinXp...
Без каких-либо эксепшенов исполнение исполнение идет прямиком к ExitProcessю Занавес.
В шаблоне окна в ресурсах ничего странного не заметил (все стили – Win2k+).
Но при создании диалога из ресурсов все ломается внутри CreateWindowEx.
Отчего-то первый вызов CreateWindowExW проходит успешно, окно создается, но пока невидимо.
А второй (не совсем понял, зачем он) – молча делает что-то не то и, в итоге, выполняет DestroyWindow.
Стак 1-го выхова:
user32._VerNtUserCreateWindowEx
user32._InternalCreateDialog
user32._InternalDialogBox
user32._DialogBoxIndirectParamAorW
user32._DialogBoxParamA
kernel32._BaseProcessStart
Стак 2-го:
user32._VerNtUserCreateWindowEx
user32._CreateDialogIndirectParamAorW
user32._InternalDialogBox
user32._DialogBoxIndirectParamAorW
user32._DialogBoxParamA
kernel32._BaseProcessStart
Вот так и появлется несовместимость на ровном, казалось бы, месте ? :)
Если будет минтука, гляньте, pls, в чем дело. Просто любопытно.
Petya
(01.09.2020 в 13:12):
Идея на ближайшее первое апреля - в очередную либо старую версию какой-либо из своих программ приделать проверку лицензии, в роли которой будет выступать секретный шестизначный код отправки сообщения. Умные снимут защиту, терпеливые найдут код, старожители порадуются, что скачали раньше, остальные 98% недостойны.
ManHunter
(24.04.2020 в 21:34):
Может когда-нибудь и сделаю
tuk
(24.04.2020 в 20:53):
Сделайте пожалуйста Тетрис, такой же суровый и простой.
Гламурные тетрисы со стразами задолбали.
Гламурные тетрисы со стразами задолбали.
tuk
(16.01.2019 в 23:34):
Очень Тетрис хочется на asm
ManHunter
(02.03.2018 в 13:37):
Бесконечной она в принципе не может быть. Когда змейка заполнит собой почти все игровое поле, то она гарантированно или укусит себя за хвост, или же врежется в стену.
Gennady
(02.03.2018 в 13:04):
А что будет после побития рекорда? )) Так понимаю, эта змейка "бесконечная"? )
Когда-то тоже делал змейку на ку-бейсике под дос. ) Там в дистрибутив был вложен пример, но несколько другого рода, с уровнями. Для перехода на новый уровень надо было съесть некоторое число яблок, вдобавок в каждом новом уровне еще появлялись стенки-преграды. Решил усовершенствовать, русифицировал интерфейс ))), добавил 20-30 новых сложных уровней (было всего 3 кажется), сделал экран загрузки при входе с заданием параметров игры, сохранение рекордов, загрузку уровня. Хотел встроить еще и редактор уровней для пользователя, но дос кончился вместе с Win98, а WinMe и XP как-то сразу ку-бейсик невзлюбили, пришлось о нем забыть. )
Автор AxySnake кстати основные игровые моменты возможно использовал именно из того досовского образца, хотя и замечательно творчески их переработал и усовершенствовал.
Игровой момент - из-за чего игра и бывает интересна - такая вещь, которую не создашь никакой супер-3D-графикой. Он или есть или его нет. )
Мне кажется, здесь все же немного не хватает возможности менять размер окошка. Ну и/или масштабировать. Что например на мониторах с большим разрешением явно не помешало бы. А так, в целом, вполне симпатичный пример. ) При этом просто гениальный по размеру. )))
Когда-то тоже делал змейку на ку-бейсике под дос. ) Там в дистрибутив был вложен пример, но несколько другого рода, с уровнями. Для перехода на новый уровень надо было съесть некоторое число яблок, вдобавок в каждом новом уровне еще появлялись стенки-преграды. Решил усовершенствовать, русифицировал интерфейс ))), добавил 20-30 новых сложных уровней (было всего 3 кажется), сделал экран загрузки при входе с заданием параметров игры, сохранение рекордов, загрузку уровня. Хотел встроить еще и редактор уровней для пользователя, но дос кончился вместе с Win98, а WinMe и XP как-то сразу ку-бейсик невзлюбили, пришлось о нем забыть. )
Автор AxySnake кстати основные игровые моменты возможно использовал именно из того досовского образца, хотя и замечательно творчески их переработал и усовершенствовал.
Игровой момент - из-за чего игра и бывает интересна - такая вещь, которую не создашь никакой супер-3D-графикой. Он или есть или его нет. )
Мне кажется, здесь все же немного не хватает возможности менять размер окошка. Ну и/или масштабировать. Что например на мониторах с большим разрешением явно не помешало бы. А так, в целом, вполне симпатичный пример. ) При этом просто гениальный по размеру. )))
Прол Смит
(20.12.2017 в 16:53):
Не работает ваще! Pentium(R) 3.00 GHz, 2 Gb, Win XP SP3
ManHunter
(01.09.2017 в 21:53):
user, поправил SCORE, теперь обнуляется.
Never
(31.08.2017 в 10:19):
Как пасхалку в какую-нибудь софтину бы такое засунуть. Изменение окна на order.txt порадовало.
user
(26.08.2017 в 01:28):
Кстати, обратил внимание на мелкую несуразность, которую неохота даже и исправлять - после убиения питона об стенку (или самоперегрызания) в SCORE продолжает оставаться текущее значение перевариваемых бананов.
И только после поедания новым молодым питоном первого банана значение SCORE становится равным 1.
В момент гибели питона SCORE должен становиться равным 0.
И только после поедания новым молодым питоном первого банана значение SCORE становится равным 1.
В момент гибели питона SCORE должен становиться равным 0.
ManHunter
(25.08.2017 в 08:45):
Конечно не предел, у меня личный рекорд 407 без всяких читов.
user
(24.08.2017 в 21:05):
)) ну и традиционно - добавлено жульничание с нажатым Shift'ом:
rgho.st/6JmbVfXf8
Типа тренер.
.. 138 съеденных бананов это не предел.
rgho.st/6JmbVfXf8
Типа тренер.
.. 138 съеденных бананов это не предел.
ManHunter
(21.08.2017 в 22:03):
Я, конечно, тоже с теплотой вспоминаю 386-е машинки, но это уже, имхо, перебор. Для меня минимальный порог работоспособности софта - WinXP с соответствующим железом.
user
(21.08.2017 в 21:54):
rdtsc?
Можно же было обычный таймер использовать, там частота событий достаточна невысокая..
Просто такого рода программки смотрятся симпатичней в квадрате, если способны шевелиться даже на 80386 процессоре
Имхо.
Можно же было обычный таймер использовать, там частота событий достаточна невысокая..
Просто такого рода программки смотрятся симпатичней в квадрате, если способны шевелиться даже на 80386 процессоре
Имхо.
Владимир
(16.08.2017 в 13:16):
Спасибо ! Всё работает. Получил море удовольствия )
ManHunter
(16.08.2017 в 08:45):
Конфисковал у манагеров ноут с десяткой, ошибку удалось воспроизвести. Поправил, сейчас точно все работает. Архив обновлен. Всем огромное спасибо за помощь!
DiPrm
(14.08.2017 в 08:49):
Классная задумка! На windows 7 Макс полет нормальный!
SanekK
(13.08.2017 в 20:29):
Защитник Windows 10 определяет его как вирус и не запускает
user
(10.08.2017 в 21:45):
Нормально работает.
ManHunter
(10.08.2017 в 18:44):
"Змейка за 400": http://www.picshare.ru/view/8228049/
user
(09.08.2017 в 23:13):
С исходниками на асме для DOS приводилась в качестве примера в какой-то книге, не помню название.
Вот тот текст, - добавлено жульничание - питона можно притормозить, нажав и удерживая Shift.
>>
old-dos.ru/dl.php?id=8068
>>
Работает в сеансе DOS до WinXP включительно - поскольку требует полноэкранного режима, которого в Висте уже нету.
Вот тот текст, - добавлено жульничание - питона можно притормозить, нажав и удерживая Shift.
>>
old-dos.ru/dl.php?id=8068
>>
Работает в сеансе DOS до WinXP включительно - поскольку требует полноэкранного режима, которого в Висте уже нету.
ManHunter
(09.08.2017 в 18:52):
Да
Давидыч
(09.08.2017 в 18:12):
На ассемблере написано?)
ManHunter
(09.08.2017 в 13:42):
На мои программы исходников никогда не будет. Вполне достаточно того, что они бесплатные.
Владислав
(09.08.2017 в 13:30):
без исходников :-(((
ManHunter
(09.08.2017 в 08:53):
Nostalgia Critic, потому что могу :)
MaximVK
(09.08.2017 в 05:58):
Nostalgia Critic
(09.08.2017 в 03:43):
Зачем? :D
Добавить комментарий
Заполните форму для добавления комментария
Подумалось, что воспроизведётся и у вас (других капризов на этой машине не замечено. Это единственная странность).