[Assembler]Snake game
|
|
Saitei | Дата: Среда, 14 Мая 2014, 16:43 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Пространство: 2D Начало разработки: 11.05.2014 Конец разработки: 13.05.2014 Язык программирования: Assembler Source code: клац Часто задаваемые вопросы: В: Что?! Опять змейка?? О: Да, это змейка. Игра "питон", если точнее. Писалось чисто для себя.
В: Как это скомпилировать? О: Используйте компилятор для TASM
В: ОК. Но игра не запускается... Почему? О: Многие современные операционные системы запрещают использовать прерывания BIOS. Запустите с помощью DOSBox или (информация не 100%) с помощью Windows XP.
В: Зачем так париться с эмуляцией? Смысл писать игру под DOS? О: Во-первых, в DOS есть много ограничений, что и делает разработку интересной. Кроме того, вместо того чтобы писать игру используя готовые решения, я писал игру с чистейшего листа, без API DOS (за исключением прерывания DOS 21h в кое-каком случае)
В: Я подобрал еду. Потом второй раз она не подбирается, прорисовывается "сверху" змеи... Почему? О: Я не успел дописать рандом. В коде это вы увидите... Буду надеяться, что кто-то сообразит и переделает его Да и вообще некоторые фичи не реализованы. Я долго думал: "доделывать ли?" и пришёл к выводу, что лучше я выложу слегка недоделанную игру, чтобы у другого человека была возможность доделать\переделать мою программу. Она не претендуют на место "лучшей программы", я даже видел и читал змейку куда меньше, чем у меня... Но, думаю, змейка в 4 кб - достойный результат! =)
Управление: W,A,S,D - движение Скриншоты:
Сообщение отредактировал Saitei - Воскресенье, 18 Мая 2014, 19:24 |
|
| |
last2424 | Дата: Среда, 14 Мая 2014, 17:00 | Сообщение # 2 |
30 мл. блоков
Сейчас нет на сайте
| Saitei, зачем вообще нужны прерывания в BIOS?
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
Saitei | Дата: Среда, 14 Мая 2014, 17:06 | Сообщение # 3 |
старожил
Сейчас нет на сайте
| last2424, цитирую: Цитата Прерывание (англ. interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.[1]
В зависимости от источника возникновения сигнала прерывания делятся на:
асинхронные, или внешние (аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание (англ. Interrupt request, IRQ); синхронные, или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение стека, обращение к недопустимым адресам памяти или недопустимый код операции; программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения (firmware), драйверов и операционной системы.
Термин «ловушка» (англ. trap) иногда используется как синоним термина «прерывание» или «внутреннее прерывание». Как правило, словоупотребление устанавливается в документации производителя конкретной архитектуры процессора. +все прерывания ОС базируются на прерываниях BIOS. BIOS - Базовая система ввода\вывода. Без биоса от компьютера останется холодное железо, которое просто не сможет запуститься. Первым запускается BIOS
Сообщение отредактировал Saitei - Среда, 14 Мая 2014, 17:10 |
|
| |
OoOoOoO | Дата: Среда, 14 Мая 2014, 17:09 | Сообщение # 4 |
был не раз
Сейчас нет на сайте
| Клево! змейка на asm'e! programmer skill ++
C#|.NET - ASP.NET, ASP.NET MVC/WebAPI, WinForm, WCF, Service, Entity Framework/NHibernate... jquery, javascript Objective-C
|
|
| |
Saitei | Дата: Среда, 14 Мая 2014, 17:12 | Сообщение # 5 |
старожил
Сейчас нет на сайте
| OoOoOoO, спасибо, приятно)) Жалко что рандом не доделал...
|
|
| |
last2424 | Дата: Среда, 14 Мая 2014, 19:05 | Сообщение # 6 |
30 мл. блоков
Сейчас нет на сайте
| Saitei, дак доделай, что мешает то?
Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
|
|
| |
beril | Дата: Среда, 14 Мая 2014, 19:31 | Сообщение # 7 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Игра конечно врядли кому то интересна будет. Но вот к скилу и опыту программирования пойдет
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
Saitei | Дата: Среда, 14 Мая 2014, 19:46 | Сообщение # 8 |
старожил
Сейчас нет на сайте
| last2424, мешают некоторые ограничения, не осиливаю. Для современных ОС несомненно написал бы, ведь там доступны 32-ух и 64-ех разрядные регистры. Мой косяк, отмазываться не буду... >< beril, да, играть и вправду никто не будет. Но я решил сделать парочку алгоритмических задачек, для опыта так сказать... Скоро на ассемблере буду писать крестики-нолики. Потом по плану платформер на С++!
Сообщение отредактировал Saitei - Среда, 14 Мая 2014, 19:47 |
|
| |
Xakep | Дата: Среда, 14 Мая 2014, 19:58 | Сообщение # 9 |
めちゃくちゃちゃ
Сейчас нет на сайте
| Переходи уже на OpenGL, там тоже много чего интересного и низкоуровневого есть )
|
|
| |
Saitei | Дата: Среда, 14 Мая 2014, 20:00 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| Xakep, нееееет, на асме я ток крутящийся квадратик смог вывести)) Если платформер пилить на нём - у меня мозг бомбанёт.. =))
|
|
| |
Xakep | Дата: Среда, 14 Мая 2014, 20:02 | Сообщение # 11 |
めちゃくちゃちゃ
Сейчас нет на сайте
| Цитата Saitei ( ) Xakep, нееееет, на асме я ток крутящийся квадратик смог вывести)) Если платформер пилить на нём - у меня мозг бомбанёт.. =)) ну на OpenGL вроде бы проще сделать крутящийся квадратик ) там самое интересное с шейдерами ) я имел ввиду программировать на C++ и OpenGL
|
|
| |
Saitei | Дата: Пятница, 16 Мая 2014, 01:04 | Сообщение # 12 |
старожил
Сейчас нет на сайте
| Цитата Xakep ( ) я имел ввиду программировать на C++ и OpenGL аа) Ну, шейдеры для меня - это больная тема..Добавлено (16.05.2014, 01:04) --------------------------------------------- Дальше по плану крестики-нолики на ассемблере и игра "Жизнь" на С++
|
|
| |