К книге
Ретро бит [5]Глава 11
41%
Глава 11
11

Есть расхожее выражение – один переезд равен двум пожарам. Полностью с ним согласен. Казалось бы, двое молодых людей и питбуль, у которого из вещей поводок и намордник, перебрались в новый дом с минимумом багажа. Но на то, чтобы сначала всё перенести, а затем раскидать и порядок навести, остаток светового дня ушел. Вымотался до предела! Легли спать и даже телевизор на ночь смотреть не стали. Это потому, что ТВ у нас банально нет. Не положили в комплект к коттеджу. Придется сходить в магазин и купить. Или на свалке найти? Пожалуй, все-таки куплю, чай, уже не тот нищеброд, что полгода назад!

На следующее утро, после прогулки с собакой по району, я таки добрался до моей прелести – системного блока и ISA-платы расширения с распаянными на ней банками памяти. Целых 256 килобайт плюс 64 килобайта, идущих на материнской плате, итого 320 – половина от 640 килобайт, достаточных кому угодно для чего угодно! В 2026 году в них не вместилось бы вообще ничего. Самописный Хеллоу Ворлд, возможно, и то, в зависимости от того, на каком фреймворке делать, есть немалая вероятность, что памяти бы не хватило. А тут я вхожу процентов в десять, а то и пять самых обеспеченных памятью пользователей ПК на планете.

От ощущения собственной элитарности даже нога чуть меньше ныть стала. Ну что, пацаны, “пока папа может в Си, всё в порядке на Руси”?

Начал с того, что скинул весь комплект софта, полученный от рыжего Блейза, на виртуальные дискеты Корвуса. Уже тут чувствовалась потребность в “Каналья Коммандере”, сокращенно Си-Си. Я, может быть, и не робею перед видом командной строки, но для простых операций предпочитаю графический интерфейс.

Текстовый редактор PMATE-86, идущий в комплекте на одной из дискет, порадовал хотя бы нормальным перемещением курсора вверх-вниз между строчками, не хуже, чем в среде Эппл Паскаля. И все равно буду пилить свой инструмент!

Аж руки в предвкушении от того, что я сейчас начну писать производительный код не на выворачивающем мозги ассемблере, а на нормальном высокоуровневом языке.

Аж залюбовался простейшим хеллоу ворлдом, максимально примитивным, из единственной функции main, вызывающей оператор printf. Перепроверил опечатки и скобочки. Всё идеально.

Прошел все круги нудятины с выходом из редактора и запуском компилятора из командной строки. Но не заработало! Не скомпилировалось! Примитивный привет мир. Шок – это по-нашему! Сборщик поругался на объявление главной функции программы – сказал, что тип void, каким всю жизнь ее делали, не определен.

На интуиции поставил целочисленный тип Int и этого хватило! Карамба! Как так? Никаких мануалов и вообще книжек по Си я у Блейза не выцыганил. Воистину два в шестнадцатой способов отстрелить себе конечности!

– А сейчас змейка? – обняла меня сзади за плечи Линда, не только сделавшая уборку, но и приготовившая ужин. Макарошки с мясом и мексиканскими специями, судя по волшебному острому запаху. Елена выполнила свою угрозу и научила мою хайну готовить.

Этот вопрос у нас с ней уже традицией стал. Знает же, что “да”, несмотря на мои сложные отношения с пресмыкающимися. Увы, в вопросах замедления чересчур быстро выполняющегося кода в “сях” всё осталось столь же печально, как и в Паскале. Ну или функция называется как-то очень нетривиально. Пришлось в очередной раз притормаживать программу при помощи пустого цикла и проверки системного таймера, и только так я сумел накормить змею яблоками.

Побаловал себя чем-то посложнее – написал быструю сортировку, какой запомнил ее по курсу Си у нас в Политехе, легендарный квиксорт. Да, не с первой попытки скомпилилось, и даже не с пятой, но вспомнил и справился. Всё еще достоин!

Далее попробовал тетрис и понял, что не знаю, как выполнять очистку экрана в текстовом режиме. Умею только напечатать в цикле пробелы поверх уже выведенных символов. Как хорошо, что уже на днях у меня в расписании первое занятие по языку Си с местными гуру. Как минимум, методичку у них урву.

Но существует способ и попроще! Стэк Оверфлоу! То есть его далекие предки. Я знаю номер телефона целой одной крупной BBS родом из Сан-Франциско – пиратской бухты. Заодно проверю, как там поживает украденная копия моей уточки!

Увы, ком-порта из коробки в IBM-5150 не имелось. Нужно покупать очередную плату расширения, а слотов под них всего пять. И если так, то, возможно, лучше сразу купить плату-модем. С автодозвоном и скоростью 1200 бод! Мечта-мечта для нынешних пещерных времен.

Пока же откопал в вещах акустический модем и старого приятеля Трэш-80. Давненько я к нему не обращался. Всё такой же неказистый, с необходимостью загружать терминал с кассетного магнитофона и риском устроить наводки всем соседям, он отлично меня выручал.

Зашел в тему с Флэппи Бёрд. Она заглохла пару месяцев назад, но на днях ожила.

DR. QUACKER: Я был на фестивале “US Fest” Стива Возняка, и каково же было моё удивление, когда он появился на публике в футболке с логотипом Каналья Геймс и их маскотом-уткой. Как думаете, сколько нонейм разработчики заплатили Возняку за пиар? Почему он согласился? Игра примитивная, но увлекает.

CPT_CRUNCH: Да Воз просто запал на их стендовых моделей! Я сам на них запал! Вы бы видели тех дамочек забыли бы, как вас зовут. Мисс Сентябрь по версии Плейбой и супергорячая латина. Я бы обеим вдул!

Обсуждение женских достоинств Трейси и Изабеллы, а также того, что капитану Кранчу их внимание не светит, мы проматываем… проматываем… проматываем… это, похоже, самая популярная ветка трекера за несколько дней.

HEX_WIZARD: DR. QUACKER, ты серьезно? Заплатили ВОЗНЯКУ? Чувак владеет акциями Эппл на миллионы баксов. У подвальной студии “Каналья” не может быть таких денег. Скорее всего, ему понравилась игра, она на самом деле затягивает.

DR. QUACKER: Мисс Сентябрь, то есть Пенни Смит героиня их новой игры, я попробовал на стенде. Уже не такой примитив она убегает от каменного шара, как в Индиане Джонсе, и грудь у нее подпрыгивает. Вам стоит увидеть этот проект, очень плавно работает. Выложу дамп кассеты, как только получится достать. Их издаёт Сьерра Онлайн, бывшая Онлайн Системс.

CPT_CRUNCH: Я куплю кассету, если смогу найти в продаже!

PETER BLOOD: Эти игры стоит приобрести легально, поддержать разработчиков.

SYSOP_BLACKBEARD: Я слышал, Воз даже в общую очередь встал, чтобы четвертак закинуть и поиграть в аркадный автомат с этой уткой, отказавшись лезть без очереди! Мужик – легенда.

SILICON SURFER: PETER BLOOD, ты точно форумом не ошибся? Покупать он собрался на пиратской борде! Хотя, признаюсь, я и сам впечатлен.

BYTE_RIDER: Согласен со всеми. Если Сьерра Онлайн взялась их издавать, значит, нас ждет много годных релизов. DR. QUACKER, ждем дамп аркады с Мисс Сентябрь! Она уже моя самая любимая девушка месяца…

И снова, снова, снова вереница признаний в любви к Трейси. То ли еще будет, когда эпизоды сериалов с ее участием выйдут. А там еще и, глядишь, Хассельхофф ее в Спасателей Малибу подтянет, но это уже нескоро и не точно.

Зачитавшись, чуть не забыл о главной цели своего визита – мануалах к Лэттис Си. Увы! Сам компилятор стоимостью в 500 баксов я нашел, с полным набором дискет. А вот комплектные книжки никто не выложил. По понятным причинам: распознавание сканированного текста и в технически продвинутом 2026 изредка хромает, лишь благодаря нейросетям стало давать стабильный результат. Хотя на последних курсах института я, помнится, уже “Файн ридером” методичку для курсовой распознавал. Мне стоит подумать о том, чтобы Каналья Софт еще и данной отраслью занялась – компьютерным зрением и всем сопутствующим.

Ладно, не настолько я нищий, чтобы не позволить себе пару мануалов приобрести. Знать бы только, где? Городок у нас небольшой. Есть ли тут Радиорубка, например? Просто спросил в общей ленте “знает ли кто номера электронных досок в Эль-Серрито”, получил наводку на парочку и подключился к названной “Компьютерный клуб Гэвина”. Имечко меня позабавило. Вроде бы в англоязычных странах оно не такое и редкое, но единственный известный мне его обладатель – пропавший персонаж из РДР2.

Увы, не дозвонился ни до одного узла. Видимо, найти Гэвина сложно и в наши времена тоже.

Линда, пока я серфил в сети, отнюдь не бессмысленно деградировала, а тоже делом занималась. Второй монитор, плюс мой Эппл 2 – и она смогла погрузиться в историю “40 тысяч способов”.

– Крис, если я пропишу эпизод, где герой спасается из горящего здания после удара молнии и лучший вариант спасения – разбить окно дисководом, это нормально? – спросила она меня. – Не слишком тщеславно свой опыт в игру переносить?

– Отличный способ сжиться с персонажем, как думаю, – решил я. – А если кто-то начнет выступать, что так не бывает – всегда найдется аргумент для критиканов. А поехали съездим в гости, мне любопытно, как там поживает Монти и занимался ли он разработкой шашек, как обещал.

Брать и ехать вот так сразу без приглашения невежливо, а потому я сначала позвонил.

– Монтгомери Синклер Третий, слушаю вас, – послушался спокойный и уверенный голос мажорчика.

– Привет. Мы наконец-то приехали. Собираюсь начать работу по-настоящему.

– Привет. У меня есть что показать. Я не очень хорошо разбираюсь в играх, но взял литературу в библиотеке и уверен, что алгоритмы подобрал правильные, эффективные. Проблема в оценке – нужно несколько человек, чтобы сыграть для тестирования. Мой круг знакомых здесь ограничен и показывать им программу без разрешения заказчика, то есть тебя, я счел неэтичным.

– У меня имеется хороший способ оценить. Будем через час-полтора.

Я, признаться, так себе спец по шашкам и шашечным алгоритмам, но затем нам и нужны компьютеры, не так ли?

Запас по времени мне требовался для того, чтобы, пересев за Эппл 2 и подключив к нему модем, стащить с Пиратской Бухты шашечную программу “Checker King”. Имейся у меня модем под Вик-20, скачал бы версию под него, но чем богаты. Сижу тут такой буржуй, обложившийся недешевыми компами, и ворчу, что жемчуг мелкий!

Нога за ночь вроде бы отдохнула и отошла. И без фингала обошлось – быть может, я уже иммунитет к дробящему урону заработал после всех полученных чингасос? Это я к чему – сам, без помощи Линды, донес Эппл 2 в корпусе из-под телека до Тойоты. Лоурайдер выгонять из-под навеса не стал – нечего пугать всяких пожилых ведьм.

Дом Монти несколько изменился – я еще с улицы заметил яркие оранжевые занавески на шторах, а когда Синклер открыл нам с Линдой дверь и впустил, я едва не споткнулся о небрежно брошенные женские туфли на высокой платформе.

– Вы съехались с Селестой, да? – взгляд Линды подернулся особой романтической дымкой.

– Приветствую, друзья мои, – несколько степенно поздоровался Синклер. – У мисс Скай возникли проблемы с арендой и остаться в стороне стало бы поступком, противоречащим моему воспитанию. Я предложил Селесте занять одну из комнат. Увы, сейчас моя соседка на работе. У меня же пары начнутся лишь через несколько дней.

Полагаю, за аренду хиппи ему не платит. А потому парень обрадовался появлению блудного работодателя. Очень уж приветливо улыбался и даже Эппл 2, выглядящий как старый ТВ без кинескопа, у меня подхватил.

– Это компьютер, против которого я предлагаю сыграть твоему алгоритму, – пояснил я. – Не обращай внимания на странный внешний вид. У него долгая история.

– Понимаю. Хорошая идея для испытаний. Я вложил в работу много усилий, всё своё понимание шашек и дебютный материал, найденный в библиотеке. Не буду скрывать – мне интересна оценка моего труда.

Гостиная Синклера разительно переменилась. Во-первых – благовония, хиппи без них никуда. У окна, выходящего на дом Катценьяммера, образовался ворох подушек. Повсюду талисманы из ниток и птичьих перьев и живые цветы в горшочках. На стене вместо висевшего там ранее пейзажа появился крупный плакат “Благодарных мертвецов” со скелетом в сомбреро. Я видел их выступление на фестивале, но группа мне не очень понравилась. Прямо неприятия не возникло, но психоделический рок – не совсем моё.

– Мисс Скай внесла свои изменения в быт, – не теряя достоинства, пояснил Монти.

Совместными усилиями мы утащили телевизор из его гостиной в кабинет, дабы подключить мой Эппл 2 и устроить битву искусственных интеллектов.

Но начали с простой демонстрации. Запущенная Монти программа выглядела шедевром аскетизма – командная строка и всё.

– Из контекста нашей беседы я понял, что графическое оформление ты собираешься реализовать сам, а потому сделал ввод и вывод ходов в текстовом виде. Вот доска, на ней продублируем, – парень кивнул в сторону шахматного поля.

Я бы наоборот, не удержался от хотя бы примитивной визуализации доски. Мне, как игроку, сначала достались белые и для победы над компьютером моих навыков не хватило. Разгромлен, повержен, раздавлен и унижен. Поначалу я неплохо развивал свою позицию, но угодил в ловушку и комп сожрал сразу пять моих шашек. Что порадовало – очень быстрые ходы, без ожидания по полчаса. Секунд по 10-15 комп думал.

– Меня он тоже часто обыгрывает, – с легким стыдом признал Монтгомери.

Еще один матч – и я слился белыми.

– Можно, я попробую? – попросила Линда.

Тот же итог – безоговорочная победа компьютера. В целом понятно, почему. Вычислительных мощностей процессора Интел 8088 хватает, чтобы просчитывать довольно большую глубину ходов и выбирать лучшие. Все-таки шашки – это простая игра и вариативность в них совсем не та, что в шахматах. Пожалуй, для поставленных мной целей показанный результат даже излишен, но идея испытать написанный шахматным гением алгоритм мне глянулась очень интересной, а потому мы продолжили.

Вводить двум компьютерам ходы друг друга – дело нехитрое. Я занял место за клавиатурой Эппл 2, Монти – IBM, Линда у доски – передвигать фигуры, хотя это и не очень требовалось.

Первой стала заметна разница в быстродействии. Процессор у 5150 с почти в пять раз большей тактовой частотой и шестнадцатибитный. Там, где старичок Эппл 2 пыхтел над ходом минутами, IBM справлялся за десятки секунд. Надо ли уточнять, что шашечный алгоритм Монти одержал полную и разгромную победу несмотря на то, что мы даже кофе успевали выпить, пока Чекерс Кинг раздумывал над ходом в режиме максимальной сложности с глубиной в 8 полуходов. То есть четыре полноценных хода. Один раз на добрых полчаса задумался. И все равно проиграл.

– Сколько полуходов просчитывает твой алгоритм? – спросил я.

– Двенадцать, – спокойным тоном ответил Монтгомери, как будто я про температуру за окном узнавал. – Я использовал алгоритм альфа-бета отсечения, усиленный моей собственной эвристической оценкой позиции, позволяющей заранее отбросить бесперспективные варианты. Кроме того, я схитрил и жестко прописал некоторые наиболее эффективные дебюты из шашечной теории, взятой из учебника. То есть там, где позиция совпадает с хорошо известной дебютной, программе ничего считать не нужно.

Я как будто при рождении Скайнета поприсутствовал.

– Покажи мне код, – попросил я, не спеша принимать задачу. Нужно убедиться хотя бы в том, что Синклер не забыл уровни сложности сделать и играть, как тупой новичок, его алгоритм также способен.

Монти вывел на экран монитора паскалевские исходники с дискеты и… более отвратительной “лапши” я не видел, наверное, ни у одного джуна. Просто поток сознания, излитый на монитор. Возможно, гениальный поток гениального сознания. Но всего моего опыта не хватало, чтобы понять что-то большее, чем “это код на Паскале и он производит некие вычисления”. Да я не сразу разглядел даже самую тривиальную часть – место с парсингом ввода хода игрока.

Та самая “одна божественная процедура”, которая делает всё. Большой кусок чего-то непонятного и неструктурированного. И он еще утверждает, что был лучшим по информатике? Академия Бель Эйр только что с грохотом покатилась вниз в моем рейтинге учебных заведений.

“Ну что, товарищи, коллектив у нас квалифицированный, работа проделана большая, у меня лично сомнений нет – это дело так не пойдёт!”

Предыдущая главаГлава 11 из 27Следующая глава