Величайшая программа из когда-либо написанных

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (2) [1] 2   К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
Штирлиц
18.11.2016 - 15:29
Статус: Offline


сетевой разведчик

Регистрация: 25.05.07
Сообщений: 20173
66
Как вы думаете, какую из существующих программ можно назвать самой великой? Можете ли вы сказать про одну из своих программ, что она круче всех остальных? Есть мнение и, прямо скажем, далеко не безосновательное, что такую программу написал Дэвид Хорн в 1983 году: шахматы в один килобайт для ZX81.

Дэвид Хорн — это не какая-нибудь байка. Он достиг того, что многие из нас вообще сочли бы невозможным. Он написал шахматы с искусственным интеллектом (!) для плохо документированной и полной багов машины, содержащей всего один килобайт памяти. Мы говорим о Sinclar ZX81.

Задумайтесь на секунду об этом количестве памяти. Один килобайт. 1024 байта. Вы могли бы хотя бы записать правила шахмат менее, чем за тысячу символов? Это сама по себе нетривиальная задача. Запустите свой любимый компилятор и соберите минимальное приложение, которое только возможно. Скорее всего оно уже будет занимать больше одного килобайта, хотя не делает вообще ничего полезного.

Так, подождите-ка. Один килобайт — это же общий объём памяти. Сколько из этого было доступно программисту? Ответ есть по ссылке в конце статьи, пользоваться можно было всего 672 байтами! Даже эта короткая статья занимает больше.

И в этих шахматах был ИИ. Не то чтобы это был очень умный ИИ, но тем не менее он был. То есть программа могла не только показывать доску, проверять правильность ходов, определять победителя (или ничью), но еще и выбирать ходы для себя и разыгрывать их.

Было еще кое-что. Дэвид не только продумал и реализовал идею шахмат в столь малом объеме памяти. Он еще опубликовал их полный исходный код с подробным объяснением того, как именно всё было сделано, в феврале 1983 года в журнале «Your Computer». Эта статья прямо таки погружает нас в захватывающую 8-битную атмосферу тех времён, когда существенные ограничения заставляли программистов писать по настоящему компактный и эффективный код.

Программа: http://users.ox.ac.uk/~uzdm0006/scans/1kchess/
Источник: http://thad.frogley.info/archive/the_greatest_program.html

Величайшая программа из когда-либо написанных
 
[^]
Yap
[x]



Продам слона

Регистрация: 10.12.04
Сообщений: 1488
 
[^]
Pomeranec
18.11.2016 - 15:33
8
Статус: Offline


Гость

Регистрация: 24.08.15
Сообщений: 0
Вполне нормально для того времени. Многие так работали, сам на СМ-4 делил 16К на четверых. Все работали, никто никому не мешал.

Это сообщение отредактировал Pomeranec - 18.11.2016 - 15:37
 
[^]
DenJohn
18.11.2016 - 15:33
3
Статус: Offline


Ярила

Регистрация: 11.03.16
Сообщений: 1039
Ну не совсем ИИ, наверное ..
 
[^]
ntime
18.11.2016 - 15:34
33
Статус: Offline


Юморист

Регистрация: 14.07.13
Сообщений: 518
Раньше было Искусство Программирования, а сейчас оно превратилось в склеивание шаблонов.
 
[^]
Ravenz3k
18.11.2016 - 15:36
3
Статус: Offline


Пацак с планеты Земля

Регистрация: 15.07.13
Сообщений: 1576
Цитата (DenJohn @ 18.11.2016 - 15:33)
Ну не совсем ИИ, наверное ..

Скорее даже совсем не ИИ.
Там наверняка было что-то вроде случайно выбранного хода.

З.Ы. Да и играть в эти шахматы очень неудобно. Как я монимаю, в командной строке игрок пишет куда должна пойти фигура типа "E2-E4", а в ответ получаешь ход "противника". Для такой игры нужна реальная доска с шахматами, чтобы эти ходы на ней отражать.

Короче говоря, ничего выдающегося в этой программе нет. На Ассемблере еще и не такое писали.
И да, если что, я программист (и не веб-программист) cool.gif

Это сообщение отредактировал Ravenz3k - 18.11.2016 - 15:44
 
[^]
Pomeranec
18.11.2016 - 15:45
1
Статус: Offline


Гость

Регистрация: 24.08.15
Сообщений: 0
Цитата (Ravenz3k @ 18.11.2016 - 15:36)
Цитата (DenJohn @ 18.11.2016 - 15:33)
Ну не совсем ИИ, наверное ..

Скорее даже совсем не ИИ.
Там наверняка было что-то вроде случайно выбранного хода.

Или хождения по Бинарным деревьям.
 
[^]
Ravenz3k
18.11.2016 - 15:45
6
Статус: Offline


Пацак с планеты Земля

Регистрация: 15.07.13
Сообщений: 1576
Цитата (ntime @ 18.11.2016 - 15:34)
Раньше было Искусство Программирования, а сейчас оно превратилось в склеивание шаблонов.

А все потому, что сейчас памяти хоть жопой жуй и кругом сплошной говнокодинг.
 
[^]
Down
18.11.2016 - 15:50
19
Статус: Offline


Хорошо. Не было бы лучше.

Регистрация: 8.06.11
Сообщений: 1466
люди, писавшие для спектрума, меня вообще поражали
уложить в 64 Кб (из которых 16 Кб уже занято) гениальнейшую игру "Элита"
со своим миром
с кучей галактик
с еще большей кучей планет
с кораблями пиратов
с кораблями полиции
со своими
и нескольких моделей
с бортовым оборудованием

эхх, да что там говорить
 
[^]
Nevius
18.11.2016 - 15:50
7
Статус: Offline


Ярила

Регистрация: 16.04.08
Сообщений: 2427
Цитата (ntime @ 18.11.2016 - 14:34)
Раньше было Искусство Программирования, а сейчас оно превратилось в склеивание шаблонов.

оно то и сейчас еще осталось, просто не массово. Те же демо-64к весьма впечатляют

 
[^]
ЛысыйЕж
18.11.2016 - 15:57
2
Статус: Offline


Юморист

Регистрация: 27.11.11
Сообщений: 487
Сейчас все затачивается с кучей абстракций, чтобы работало на различных платформах, операционках или вообще через браузер.
 
[^]
platonmsk
18.11.2016 - 15:58
1
Статус: Offline


Абонент временно недоступен

Регистрация: 10.10.14
Сообщений: 4583
Ravenz3k, тем не менее, согласно описанию программы, она держит в памяти таблицу осуществлённых и возможных ходов и имеет оценочную функцию по силе атаки возможных в данный момент ходов.
Не всё так просто.
 
[^]
idubasov
18.11.2016 - 16:08
5
Статус: Offline


Шутник

Регистрация: 2.04.14
Сообщений: 60
Бля, я оказывается до сих пор могу свободно прочитать листинг на ассемблере Z80 blink.gif alik.gif

Это сообщение отредактировал idubasov - 18.11.2016 - 16:13
 
[^]
SophistOmen
18.11.2016 - 16:10
0
Статус: Offline


Балагур

Регистрация: 3.06.14
Сообщений: 946
Оскар Толедо.
JS
Один килобайт.
Пруф: https://habrahabr.ru/post/103677/
 
[^]
makmus
18.11.2016 - 16:16
6
Статус: Offline


Шаман с бубном

Регистрация: 23.12.12
Сообщений: 1660
Зато бля щас игрухи разрабатывают под последнее железо и с графикой из 2004 года, которые тормозят систему со страшной силой, Карл!!!!!
 
[^]
McT969
18.11.2016 - 16:17
1
Статус: Offline


циничный клоун

Регистрация: 19.04.13
Сообщений: 19575
1982 в Синклере уже 16к оперативки было, а про эту прогу да, читал в свое время
 
[^]
DensMan
18.11.2016 - 16:22
2
Статус: Offline


Ярила

Регистрация: 28.09.09
Сообщений: 4083
Цитата (Down @ 18.11.2016 - 19:50)
люди, писавшие для спектрума, меня вообще поражали
уложить в 64 Кб (из которых 16 Кб уже занято) гениальнейшую игру "Элита"
со своим миром
с кучей галактик
с еще большей кучей планет
с кораблями пиратов
с кораблями полиции
со своими
и нескольких моделей
с бортовым оборудованием

эхх, да что там говорить

И играть в эту игру было интереснее чем в современные)))
 
[^]
Ravenz3k
18.11.2016 - 16:31
-5
Статус: Offline


Пацак с планеты Земля

Регистрация: 15.07.13
Сообщений: 1576
Никакой сенсации здесь нет. Объясню, почему:

В 1 килобайт уместилась ГОТОВАЯ программа, а не ее текст.
Что значит готовая? Это исполняемый файл (как сейчас exe-файлы) и он состоит из машинного кода. И именно он занимал менее 1 килобайта.

А сам текст программы занимает гораздо больше. Только одна часть кода, которую распознал автор статьи по ссылке, занимает около 8000 символов. Вот на него ссылка.
 
[^]
MG4
18.11.2016 - 16:46
2
Статус: Offline


Хохмач

Регистрация: 11.02.14
Сообщений: 655
Для любителей миниатюр))) 96 КБ
http://www.playground.ru/files/igra_krieger-64684/
В своё время очень поразила. Тут много сжатия+DiretX

Это сообщение отредактировал MG4 - 18.11.2016 - 16:47

Величайшая программа из когда-либо написанных
 
[^]
Nevius
18.11.2016 - 18:08
2
Статус: Offline


Ярила

Регистрация: 16.04.08
Сообщений: 2427
Цитата (Ravenz3k @ 18.11.2016 - 15:31)
Никакой сенсации здесь нет. Объясню, почему:

В 1 килобайт уместилась ГОТОВАЯ программа, а не ее текст.
Что значит готовая? Это исполняемый файл (как сейчас exe-файлы) и он состоит из машинного кода. И именно он занимал менее 1 килобайта.

А сам текст программы занимает гораздо больше. Только одна часть кода, которую распознал автор статьи по ссылке, занимает около 8000 символов. Вот на него ссылка.

вроде как всё верно, но опять же:

- виндовый ftp клиент, который не имеет графического интерфейса и использует чуть более чем дохера функций самой операционной системы весит 47 килобайт

- виндовый калькулятор, имеет графический интерфейс, который рисует операционка (он лишь просит её нарисовать окно в координатах) весит почти мегабайт!!! при этом он еще и использует функции из библиотек типа msvcrt.dll (т.е. без них никак не работает) gigi.gif

- skype.exe (27 мегабайт!!!), а со всеми библиотечками - 82 сцука мегабайта!!! moderator.gif

чего там можно было накодить на 27 мегабайт???
 
[^]
raspizday
18.11.2016 - 18:13
0
Статус: Offline


Шутник

Регистрация: 23.04.16
Сообщений: 45
Цитата (MG4 @ 18.11.2016 - 18:46)
Для любителей миниатюр))) 96 КБ
http://www.playground.ru/files/igra_krieger-64684/
В своё время очень поразила. Тут много сжатия+DiretX

эхх коротка игруля
давненько я в неё не игал sm_biggrin.gif
 
[^]
Crowner
18.11.2016 - 18:20
2
Статус: Offline


Путешественник

Регистрация: 8.01.09
Сообщений: 3337
Там не 1000 символов. Он писал же на ассемблере. Я под спектрум когда кодил на асме, тоже делал некоторые вещи меньше кб размером. Ну не шахматы конечно, но таки, на асме реально программы занимают мало места в ОЗУ.
Насчет символов Штирлиц конечно загнал.
XOR A занимает 5 символов, а в ОЗУ это ОДИН байт. Мнемоники Z-80 занимали от одного до 4 байт насколько я помню.

Это сообщение отредактировал Crowner - 18.11.2016 - 18:21
 
[^]
billgilbert
18.11.2016 - 20:22
1
Статус: Offline


Хохмач

Регистрация: 20.05.13
Сообщений: 718
Цитата (Pomeranec @ 18.11.2016 - 15:33)
Вполне нормально для того времени. Многие так работали, сам на СМ-4 делил 16К на четверых. Все работали, никто никому не мешал.

Пардон, 16 Кб на четверых, это не 1 Кб все-таки...


Раньше я ох..вал от игры Prehistorik - объем чуть более 1 Мб, куча разных уровней, цветастая отличная игруха, написана на Ассемблере (отсюда скорость и маленький объем), но тут просто п...ц.

Автор, спасибо!
 
[^]
Хариус
18.11.2016 - 22:33
2
Статус: Offline


Механический динозавр

Регистрация: 6.07.12
Сообщений: 1231
Цитата (Down @ 18.11.2016 - 15:50)
люди, писавшие для спектрума, меня вообще поражали
уложить в 64 Кб (из которых 16 Кб уже занято) гениальнейшую игру "Элита"
со своим миром
с кучей галактик
с еще большей кучей планет
с кораблями пиратов
с кораблями полиции
со своими
и нескольких моделей
с бортовым оборудованием

эхх, да что там говорить

И с реальным трехмерным пространством, биомать! Хуй с ней, "проволочной" графикой, вы вспомните, как без причального автомата в станцию попадали!
 
[^]
ЛешкинКот
18.11.2016 - 22:43
2
Статус: Offline


Юморист

Регистрация: 8.09.14
Сообщений: 557
Меня в свое время очень впечатлила операционная система QNX
На дискете полтора мегабайта полноценная система с интерфейсом похожим на Windows 95, браузером, неплохим текстовым редактором и еще какими-то приложениями
 
[^]
filrussia
18.11.2016 - 23:22
0
Статус: Offline


рождённый в СССР

Регистрация: 23.11.14
Сообщений: 584
Цитата (Down @ 18.11.2016 - 16:50)
люди, писавшие для спектрума, меня вообще поражали
уложить в 64 Кб (из которых 16 Кб уже занято) гениальнейшую игру "Элита"
со своим миром
с кучей галактик
с еще большей кучей планет
с кораблями пиратов
с кораблями полиции
со своими
и нескольких моделей
с бортовым оборудованием

эхх, да что там говорить

Элита рулит!!!! А еще был марс: простая демка которая демонстрировала поездку по марсу. Код занимал несколько (не помню точно) байтов. Для меня это был самый шик. Хотя и сам писал разные программы на ассемблере.
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 6422
0 Пользователей:
Страницы: (2) [1] 2  [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх