Понедельник, 25 Ноября 2024, 20:51

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
[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 в кое-каком случае)

В: Я подобрал еду. Потом второй раз она не подбирается, прорисовывается "сверху" змеи... Почему?
О: Я не успел дописать рандом. В коде это вы увидите... happy Буду надеяться, что кто-то сообразит и переделает его smile
Да и вообще некоторые фичи не реализованы. Я долго думал: "доделывать ли?" и пришёл к выводу, что лучше я выложу слегка недоделанную игру, чтобы у другого человека была возможность доделать\переделать мою программу. Она не претендуют на место "лучшей программы", я даже видел и читал змейку куда меньше, чем у меня... Но, думаю, змейка в 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, да, играть и вправду никто не будет. Но я решил сделать парочку алгоритмических задачек, для опыта так сказать... Скоро на ассемблере буду писать крестики-нолики. Потом по плану платформер на С++! smile


Сообщение отредактировал 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)
---------------------------------------------
Дальше по плану крестики-нолики на ассемблере и игра "Жизнь" на С++

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг