Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12

Разминка для спецов №1 (512b game). Предлагаю развлечься!

02.12.2016, 00:01. Показов 7420. Ответов 19

Студворк — интернет-сервис помощи студентам
Друзья спецы. Кто хочет немного отвлечься от помощи студентам и проявить спортивный программистский интерес?
Предлагаю замутить... (хотел сначала написать "конкурс", но призов нет и жюри тоже)... в общем, своеобразную коллективную развлекуху
Назовём это "Asm 512b game fun"

Задача: написать на ассемблере игру на любую тему.

Условия:
  1. Игра должна быть написана на MASM, TASM или FASM (можно NASM, но нежелательно – не у всех он есть, вероятно) под DOS. Размер получаемого COM-файла не должен превышать 512 байт! Можно использовать FPU, MMX, rdtsc и т.п., а вот SSE/AVX нежелательно (не у всех это добро может поддерживаться).
  2. Программа должна корректно работать в DOSBox (текстовый или графический режим – неважно).
  3. Управление игрой должно производиться через взаимодействие с пользователем (клавиатура, мышь...), т.е. классический вариант автоматической игры "жизнь" не годится (если только юзер не сможет влиять на её ход). Хочется, чтобы это была именно игра, а не просто программка, которой можно управлять (например, эффект пламени, в котором можно менять направление ветра стрелками влево-вправо на игру не очень похож).
  4. Должен быть предусмотрен выход из программы (либо клавиатурой, либо после логического завершения игрового процесса, но разумеется, такой игровой процесс должен длиться разумное кол-во времени – максимум 5 минут, а не полчаса ).
  5. Код должен быть написан с нуля специально для этой темы, т.е. нельзя использовать чужой код или код, написанный ранее.
  6. Результат в виде ASM-файла и скриншота выкладывайте прямо сюда. Также просьба прикрепить архив с исходником и COM-файлом.
  7. Сроков проведения "разминки" нет, она может идти хоть год, но хотелось бы увидеть большую часть работ в течение недели (до 8 декабря или раньше).
  8. Чем интереснее и красивее будет игра, тем лучше (всяческие спецэффекты и трюки тоже приветствуются)
Есть желающие поучаствовать?
3
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.12.2016, 00:01
Ответы с готовыми решениями:

Разминка для программиста,
Уважаемые, Помогите, пожалуйста. Очень сильно нужно. Думаю для вас это не составит большого труда. Задача 1. Если a<0 и b>0, то...

Разминка Для Ума
Предлагаю задачу, которую я закрывал дня два. Идея такая - как на СКД получить график накопления оборотов с субконто на скажем счете 91.01...

Разминка для ума
прошу помочь в решение пишите номер задания и ответ если не сложно за ранее благодарю

19
Эксперт Hardware
Эксперт Hardware
 Аватар для R71MT
6206 / 2441 / 402
Регистрация: 29.07.2014
Сообщений: 3,174
Записей в блоге: 4
02.12.2016, 04:42
..суть в рамках 512? ОК! Не плохая идея...
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
02.12.2016, 09:34  [ТС]
Цитата Сообщение от R71MT Посмотреть сообщение
суть в рамках 512?
В целом – да
Хотел сначала 256b написать, но подумал, что игры, скорее всего, будут не фонтан. Хотя, Farbrausch и не такое вытворяли, см. аттач (не игра, но всё же).
В общем, на первый раз нормально
Вложения
Тип файла: zip fr0_1.zip (3.0 Кб, 80 просмотров)
0
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,940
02.12.2016, 12:08
Цитата Сообщение от Jin X Посмотреть сообщение
MMX, rdtsc
В досбоксе это не поддерживается. Он эмулирует 486 процессор.
0
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,940
02.12.2016, 12:34
У меня тоже не игра, но зато 74 байта.
Вложения
Тип файла: rar muar.rar (459 байт, 64 просмотров)
2
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
02.12.2016, 15:55  [ТС]
Цитата Сообщение от alexcoder Посмотреть сообщение
В досбоксе это не поддерживается. Он эмулирует 486 процессор.
Значит, ошибка, пардон. Хотя rdtsc всё же работает, попробовал сейчас.

Цитата Сообщение от alexcoder Посмотреть сообщение
У меня тоже не игра, но зато 74 байта.
Даёшь игру теперь?!
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
03.12.2016, 03:20
Jin X, давно как, бы писал самолетики, нужно порытся в архивах.
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
05.12.2016, 17:18
Тут два требования черезчур строгими кажутся. Писать только сейчас - ну так если есть чем заняться, то не до того уже. И 512 байт, ну так данные программы, например лабиринты, могут сожрать значительно больше. Если бы было ограничение именно на код в 512 байт, то было бы логичнее, а данных сколько угодно.

Вот нашел в старом архиве свой старый Сокобан. Написан на ассемблере как COM-файл, но потом сжат LzExe и от этого превратился в EXE. Кода в нем 0x218 байт. Почти вписывается. И можно было бы вполне вписать, заменив вставленные в него копирайты в 3 строки на краткое (C)Ethereal и еще что сократить/ужать (например убрать возможность отката ошибочного хода), да исходник-то не сохранился. Вернее он на MFM-винте, да только тот некуда подключить.

А вот данных в программе в виде лабиринтов в несколько килобайт и еще рекордных результатов байт на 400.

В программе фишка. Она сжата с помощью LzExe, но лучшие результаты сохраняются в сам EXE-файл в его конце. Там уже какие-то сохранены.

У результатов главный приоритет - минимум сдвигов блоков и вторичный - минимум ходов человечка.

После запуска программы с помощью стрелок вправо-влево выбирается лабиринт, потом пробелом переходим в выбранный лабиринт, пробелом из него-же выходим. Esc - выход из программы. В процессе игры клавишей BackSpace (забой) можно откатить последний сдвиг блока, если он был сделан по ошибке, но только один. А сама игра идет стрелками.

Когда лабиринт разобран, человечек пропадает, тут нажать пробел, получить поздравления и еще раз пробел.
Вложения
Тип файла: rar SOKOBAN.rar (7.2 Кб, 61 просмотров)
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
05.12.2016, 17:35
Смысл игры - затолкать человечком рубины (блоки) на квадратные поля. Когда рубин загнан на такое поле он выглядит уже как звездочка.
0
 Аватар для Ratio
6 / 6 / 0
Регистрация: 24.09.2016
Сообщений: 59
05.12.2016, 20:08
Цитата Сообщение от Jin X Посмотреть сообщение
не должен превышать 512 байт!
Я писал игру, но она весила 3 кило. На 512 б не вижу особого смысла. Разве что змейку какую-нибудь написать.
Хотя может быть что-то и попробую, когда время появиться.
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
05.12.2016, 22:59  [ТС]
Цитата Сообщение от Ethereal Посмотреть сообщение
Тут два требования черезчур строгими кажутся. Писать только сейчас - ну так если есть чем заняться, то не до того уже. И 512 байт, ну так данные программы, например лабиринты, могут сожрать значительно больше. Если бы было ограничение именно на код в 512 байт, то было бы логичнее, а данных сколько угодно.
Так, в 512 байтах весь и прикол. Уместить максимум в минимум
Это типа демосцены 512b intro, только в формате игры.
Про "писать только сейчас" – может быть и чересчур. Просто если уже было написано, то какой тут спортивный интерес?
Хотя, если уже что-то есть, выкладывай, всё равно интересно

Добавлено через 1 минуту
Цитата Сообщение от Ratio Посмотреть сообщение
Разве что змейку какую-нибудь написать.
Я змейку писал как-то давным-давно. Симпатично получилось, но чуть больше 1kb. Так что, в 512 байтах змейка тоже может разная получится
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
05.12.2016, 23:34
Цитата Сообщение от Jin X Посмотреть сообщение
Хотя, если уже что-то есть, выкладывай, всё равно интересно
Так я-ж выложил. Или еще чего нарыть ?

Добавлено через 3 минуты
Цитата Сообщение от Jin X Посмотреть сообщение
Это типа демосцены 512b intro, только в формате игры.
Не, ну графическая демонстрашка затмит любую текстовую игру. Ибо красиво. А в графические игры 512 я что-то мало верю. В игре-ж содержание должно быть, а не просто эффект 1 шт.

Добавлено через 7 минут
Хотя да, питона можно запихать. Или стрелялку по пролетающей слева-направо хреновине.
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
06.12.2016, 00:40  [ТС]
Цитата Сообщение от Ethereal Посмотреть сообщение
Так я-ж выложил. Или еще чего нарыть ?
Ну, так это ж не 512b

Цитата Сообщение от Ethereal Посмотреть сообщение
Хотя да, питона можно запихать. Или стрелялку по пролетающей слева-направо хреновине.
Да можно придумать, мне кажется, даже что-то типа xonix'а упрощённого. Или какой-нибудь простенький тетрис. Или что-то связанное с перестановкой цветов. Автослалом (раньше были "игры на экране").

Добавлено через 1 минуту
Но в тексте, согласен, попроще будет что-то сделать
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
06.12.2016, 01:02
Цитата Сообщение от Jin X Посмотреть сообщение
Ну, так это ж не 512b
Нет. Кода там 512 байт + 24 байта лишку. Остальное данные. Если считать только размер кода, то почти подходит. Потому и выложил.

Добавлено через 4 минуты
З.Ы. Так тут игры в 512 байт пока никто не выложил. Или меньше 512 байт, но не игра или игра, но больше.
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
07.12.2016, 01:19  [ТС]
Почти сделал за сегодняшний вечер xonix! Всё как положено: с закраской и врагами
Минимальная рабочая конфигурация 398 байт (с 3 врагами, с одним - 386 байт).
Максимальная (с полной инициализацией регистров, 3 врагами, со звуком, доп. клавиатурными удобствами, миганием при врезании, подсчётом очков... правда, пока без вывода на экран ) - 510 байт.

В общем, осталось сделать вывод счёта на экран (и оптимизировать под 512 байт) и можно выкладывать сюда
p.s. Заливку делал через рекурсию - частенько происходило переполнение стека, пришлось делать оптимизацию стека (1 байт возврата вместо 2-х). Так что, может, ещё алгоритм заливки изменю - почитать надо...
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
07.12.2016, 22:52  [ТС]
Добил-таки я этот xonix!
Получилось несколько вариантов (очень замороченно), прикрепляю всё в архиве, вот readme.txt:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
xonix05k (c) 2016 by Jin X
written in TASM (DOS COM) special for [512b game fun] (https://www.cyberforum.ru/assembler/thread1865830.html)
-------------------------------------------------------------------------------------------------------------
 
xonix05k.asm - source (with russian comments)
xonix05k.inc - config include for maximal version (with russian comments)
x05_full.inc - config include for 512b full version
x05_scrx.inc - config include for 512b version with score
x05_sndx.inc - config include for 512b version with sound
 
xonix05k.com - release of 602b maximal version (with sound, score, 'GAME OVER!' message, long copyright output; extmode and safemode are enabled)
x05_full.com - release of 512b full version with sound, score and 'LOST' message (no copyright; extmode and safemode are disabled)
x05_scrx.com - release of 512b version with score and 'LOST!' message (without sound and copyright; extmode is enabled, safemode is disabled)
x05_sndx.com - release of 512b version with sound and 'GAME OVER!' message (without score, with brief copyright in file [no output]; extmode is enabled, safemode is disabled)
 
readme.txt - this file :)
 
--------------------------------------
Enjoy the game and have a nice day! ;)
Исходник вставить в сообщение не получается, т.к. он больше 15 Кб, см. архив
Миниатюры
Разминка для спецов №1 (512b game). Предлагаю развлечься!  
Вложения
Тип файла: zip xonik05k.zip (12.8 Кб, 191 просмотров)
1
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
04.01.2022, 11:16
Прикольная штука вышла)
пока не капал, так понимаю угол отскока примитивно
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
05.01.2022, 19:57  [ТС]
Я её ещё дорабатывал, но потом забросил.
Надо попробовать 256b игру сделать и на демопати отправить
0
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
05.01.2022, 20:50
Jin X
Вспомнил школу, комп БК-0010, в конце урока информатики давали поиграть, как раз была такая игруха, правда черно-белая )
1
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6808 / 2048 / 238
Регистрация: 14.12.2014
Сообщений: 4,297
Записей в блоге: 12
31.08.2022, 13:08  [ТС]
Кстати, я забыл написать, что всё-таки сделал 256-байтовый Xonix (ещё полгода назад)

Исходники: https://www.pouet.net/prod.php?which=90981

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.08.2022, 13:08
Помогаю со студенческими работами здесь

Разминка для мозга
Меня конечно могущественный АДМИНИСТРАТОР и не менее могущественный МОДЕРАТОР как они выражаются зафлудят но я всё таки задам вам один...

Разминка для программистов
Интересно будет посмотреть на коды, кто и как решил эти задачи. :) 1. Написать программу, которая вводит по строкам с клавиатуры...

Разминка для мозгов
Необходимо выполнить задания, написав их на языке С: 1) Нарисовать схему алгоритма для программы, которая вводит значения переменных a...

Разминка для профессианалов
Помогите решить детскую задачу Условие: В телефонной книге 100 номеров абонентов. • Определить номер телефона для указанной фамилии....

разминка для мозга
на askdev.ru есть конкурс - игра в города(http://www.askdev.ru/question/1969/) есть массив городов, нужно написать программу которая на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru