Это игра-змейка x86, созданная для DOS, но есть также версия, которая не требует BIOS, загрузчика или ОС.
Игра освещалась на Hackaday.
Чтобы протестировать код, вы можете просмотреть онлайн-демонстрацию, которая обновляется при каждом изменении в Snake.asm (используйте клавиши со стрелками на ПК или проведите пальцем по экрану на мобильном устройстве).
Если вы хотите протестировать код самостоятельно, вам необходимо установить требования для процесса сборки и запустить его на своем компьютере.
Я использую nasm
и python3
, которые можно установить с помощью apt install nasm python3 -y
.
Чтобы проверить это, просто запустите main.sh и откройте http://localhost:8000.
Вдохновлено вопросом «Можно ли поместить целую игру в QR-код?» от @itsmattkc, который также был представлен на Hackaday.
Для людей, упоминающих змею64 jinX, я бы отметил, что, не принижая достижения jinX, его реализация не подчиняется тем же ограничениям, что и моя: в его версии змея может проходить через правую сторону непосредственно в левую сторону, но не из сверху вниз, продукты питания появляются случайным образом, поэтому их может быть 30 одновременно, некоторые случайные пиксели становятся белыми, для перемещения нужно использовать клавиши 4, 6, 8, 2 вместо стрелок, вы должны запустить игру с движением вниз или сбоем, вам нужно clear
экран перед запуском игры, вам нужно инициализировать правильный видеорежим впереди, когда вы проходите вверх и должны проиграть, вы можете просто вернуться вниз, и, как заявил jinX " Это не будет работать, если вы запускаете игру из терминала DOSBox. При запуске требуется значение 0 (или 50h, 80h, 0D0h...).
Для бесчисленного количества людей, говорящих, что я намеренно не упоминаю соревнование по кодированию размера Hugi (соревнование, в котором участники должны были создать игру с наименьшими кусочками, чтобы победить), вот мой ответ на один такой комментарий (когда игра еще имела размер 133 байта). ):
Во-первых, похоже, что вы даже не читали правила игры «Клёвки»:
внутри этой границы должна вырасти «змейка», размер которой вначале равен одному пикселю. после запуска программы размер змеи будет увеличиваться на один пиксель при каждом повторении основного цикла программы.
Это совсем не то же самое, что змея, и ее гораздо проще реализовать.
Во-вторых, реализации этого конкурса имеют недостатки (не то чтобы они плохие, но я говорю, что это не делает мою версию плохой), как, например, в комментариях к победившей записи:
игра не поддерживает никакие другие клавиши, кроме клавиш со стрелками на клавиатуре, вам нужно запустить ее, набрав в командной строке DOS паузу|нибблс, а затем нажав клавишу со стрелкой.
и
Поскольку верхний сегмент памяти в PSP зависит от среды [sic], вам нужна версия, подходящая для вашей среды.
и он даже не работает в DOSBox из-за необходимости каких-то специальных настроек.
Из записи со второго места:
При запуске этой программы нажмите кнопку 2 (ВНИЗ) __СРАЗУ__.
И это тоже не будет работать без установки счетчика циклов, а его изменение иногда ломает игру
Что касается третьего места
нажмите «8», «4», «6», но не «2», как только игра начнется немедленно
и игра ломается так же, как и второе место (и требует такой же корректировки цикла), но стены тоже ломаются.
Я посмотрю на четвертое место и перестану тратить на это время,
Ну, просто посмотрел на это и не смог загрузиться
И наконец, от какого места вы участвуете в конкурсе? Прежде чем критиковать других людей, сначала проверьте, правильна ли ваша критика, и попробуйте сделать это сами, прежде чем судить.
В любом случае спасибо за отзыв :)
PS Я даже не утверждал, что моя версия идеальна, суть поста заключалась в просьбе о помощи, и этот комментарий в некотором смысле заставил меня почувствовать себя лучше по поводу моей реализации, поскольку на конкурсе по оптимизации реального размера кто-то отправил 121 байт для всего лишь строки, проходящей по экрану, и вся моя игра-змейка (которая, очевидно, содержит этот функционал лишь как малая часть всей программы) теперь занимает всего лишь 12 байт больше, а если я смогу исправить PR, то только еще 7 байт.
AFAIK Это самая маленькая игра о змеях, когда-либо созданная.
Он настолько мал, что я мог бы поместить его в один QR-код:
Это 58 байт.
Насколько мало 58 байт? Ну, эта строка текста весит более 70 байт.
То же самое относится и к этой произвольной последовательности смайлов: ??❤️?????♀️??❤️???
Пустая программа на C, созданная с помощью gcc -Os -w -xc - <<< "main;"
в linux-x86_64 — 15776 байт.
c53000b80000cd108b3f8d22e5402
1c3300fbbd0077af5e4606bc00ad4
14d5449801c739dfad10257bd9893
a74de880f83eb5079f95b88277bd8
Моя версия | Версия MattKC | версия Ибары | Версия EimaMei | |
---|---|---|---|---|
Байты | 58 | ~1400 (сжатый) | 2024 год | 2953 |
QR-код | ||||
Связь | https://github.com/donno2048/snake | https://mattkc.com/etc/snakeqr/ | https://github.com/ibara/snakeqr | https://github.com/EimaMei/snake-qr |