Найти в Дзене
Электромозг

Самая маленькая игра в 512 байт!

Решил вот похвастаться своим программным творением 1999-го года выпуска. В то время я увлекался программированием на ассемблере, и написал игру «крестики-нолики», уложив её логику всего в 512 байтов. 512 байтов — это размер кластера дискеты. Если написать программу меньше, то она всё равно по факту займёт один кластер, то есть, вмещение программы в ещё меньшее число байтов было бы, наверное, просто бессмысленно. Поэтому мой выбор пал именно на этот размер, тем более, что он выглядел для этого вполне подходящим, хотя, признаюсь, довольно экстремальным. Разумеется, программа 16-битная, потому что писалась под DOS, и чтобы запустить её на современных операционных системах нужно как-то эмулировать среду старого компьютера. Для этого можно использовать эмулятор DOSBox. Вот так выглядит моя программа в этом эмуляторе: Мою программу можно скачать отсюда. Распакуйте папку с программой, скачайте и установите DOSBox. Затем подключите русский знакогенератор, подмонтируйте папку с программой и з

Решил вот похвастаться своим программным творением 1999-го года выпуска. В то время я увлекался программированием на ассемблере, и написал игру «крестики-нолики», уложив её логику всего в 512 байтов.

512 байтов — это размер кластера дискеты. Если написать программу меньше, то она всё равно по факту займёт один кластер, то есть, вмещение программы в ещё меньшее число байтов было бы, наверное, просто бессмысленно. Поэтому мой выбор пал именно на этот размер, тем более, что он выглядел для этого вполне подходящим, хотя, признаюсь, довольно экстремальным.

Разумеется, программа 16-битная, потому что писалась под DOS, и чтобы запустить её на современных операционных системах нужно как-то эмулировать среду старого компьютера. Для этого можно использовать эмулятор DOSBox. Вот так выглядит моя программа в этом эмуляторе:

Мою программу можно скачать отсюда. Распакуйте папку с программой, скачайте и установите DOSBox. Затем подключите русский знакогенератор, подмонтируйте папку с программой и запустите её.

Это всё проще всего сделать единожды через текстовый файл настроек DOSBox, доступный через меню «Пуск» в папке программы: Пуск → Все программы → DosBox-0.74-3 → Options → DosBox-0.74-3 Options. Там в последнем разделе настроек [autoexec] прописываем строчки:

keyb ru 866
mount C F:\MINOCR
C:
minocr

Вместо F:\MINOCR впишите свой путь к распакованной программе.

Сохраняем и запускаем DOSBox. После запуска эмулятор загрузит русские буквы, подмонтирует на устройство С: папку с распакованной программой, переключится на это устройство и запустит мою программу Minoсr.

Примечательно, что программа Minoсr не умеет проигрывать. В ней нет даже обработки этой ситуации. Можно лишь свести партию в ничью или по невнимательности проиграть самому. Ну, это свойство логики самой игры на поле 3х3, когда выигрыш просто невозможен, если ни одна из сторон явно не ошибётся.

Для понимания объёма кода программы Minoсr — в папке программы лежит текстовый файл READ.ME! следующего содержания:

ДОБРОЙ ВАМ НОЧИ, ГОСПОДА ХАКЕРЫ!
Перед Вами простейший вариант простейшей логической игры с элементами искусственного интеллекта - "крестики-нолики".
Эта программа была намеренно доведена до размеров дискетного кластера (для наглядности - этот файл описания имеет тот-же размер). Можно ли написать нечто подобное за меньшее число байт? Попробуйте! ;)
Удачи!
01.Х.99, Samovar.

Так вот, его объём соответствует объёму кода программы Minoсr — он тоже занимает 512 байт.

Также в папке программы содержится её исходник на ассемблере и интересующиеся кодом могут его посмотреть, он очень густо прокомментирован, так что, надеюсь, всё будет понятно.

Заключение

На сегодня всё. Поддержите канал донатами, ставьте нравлики, подписывайтесь! Удачи! :-)