Дом Монти несколько изменился – я еще с улицы заметил яркие оранжевые занавески на шторах, а когда Синклер открыл нам с Линдой дверь и впустил, я едва не споткнулся о небрежно брошенные женские туфли на высокой платформе.
– Вы съехались с Селестой, да? – взгляд Линды подернулся особой романтической дымкой.
– Приветствую, друзья мои, – несколько степенно поздоровался Синклер. – У мисс Скай возникли проблемы с арендой и остаться в стороне стало бы поступком, противоречащим моему воспитанию. Я предложил Селесте занять одну из комнат. Увы, сейчас моя соседка на работе. У меня же пары начнутся лишь через несколько дней.
Полагаю, за аренду хиппи ему не платит. А потому парень обрадовался появлению блудного работодателя. Очень уж приветливо улыбался и даже Эппл 2, выглядящий как старый ТВ без кинескопа, у меня подхватил.
– Это компьютер, против которого я предлагаю сыграть твоему алгоритму, – пояснил я. – Не обращай внимания на странный внешний вид. У него долгая история.
– Понимаю. Хорошая идея для испытаний. Я вложил в работу много усилий, всё своё понимание шашек и дебютный материал, найденный в библиотеке. Не буду скрывать – мне интересна оценка моего труда.
Гостиная Синклера разительно переменилась. Во-первых – благовония, хиппи без них никуда. У окна, выходящего на дом Катценьяммера, образовался ворох подушек. Повсюду талисманы из ниток и птичьих перьев и живые цветы в горшочках. На стене вместо висевшего там ранее пейзажа появился крупный плакат “Благодарных мертвецов” со скелетом в сомбреро. Я видел их выступление на фестивале, но группа мне не очень понравилась. Прямо неприятия не возникло, но психоделический рок – не совсем моё.
– Мисс Скай внесла свои изменения в быт, – не теряя достоинства, пояснил Монти.
Совместными усилиями мы утащили телевизор из его гостиной в кабинет, дабы подключить мой Эппл 2 и устроить битву искусственных интеллектов.
Но начали с простой демонстрации. Запущенная Монти программа выглядела шедевром аскетизма – командная строка и всё.
– Из контекста нашей беседы я понял, что графическое оформление ты собираешься реализовать сам, а потому сделал ввод и вывод ходов в текстовом виде. Вот доска, на ней продублируем, – парень кивнул в сторону шахматного поля.
Я бы наоборот, не удержался от хотя бы примитивной визуализации доски. Мне, как игроку, сначала достались белые и для победы над компьютером моих навыков не хватило. Разгромлен, повержен, раздавлен и унижен. Поначалу я неплохо развивал свою позицию, но угодил в ловушку и комп сожрал сразу пять моих шашек. Что порадовало – очень быстрые ходы, без ожидания по полчаса. Секунд по 10-15 комп думал.
– Меня он тоже часто обыгрывает, – с легким стыдом признал Монтгомери.
Еще один матч – и я слился белыми.
– Можно, я попробую? – попросила Линда.
Тот же итог – безоговорочная победа компьютера. В целом понятно, почему. Вычислительных мощностей процессора Интел 8088 хватает, чтобы просчитывать довольно большую глубину ходов и выбирать лучшие. Все-таки шашки – это простая игра и вариативность в них совсем не та, что в шахматах. Пожалуй, для поставленных мной целей показанный результат даже излишен, но идея испытать написанный шахматным гением алгоритм мне глянулась очень интересной, а потому мы продолжили.
Вводить двум компьютерам ходы друг друга – дело нехитрое. Я занял место за клавиатурой Эппл 2, Монти – IBM, Линда у доски – передвигать фигуры, хотя это и не очень требовалось.
Первой стала заметна разница в быстродействии. Процессор у 5150 с почти в пять раз большей тактовой частотой и шестнадцатибитный. Там, где старичок Эппл 2 пыхтел над ходом минутами, IBM справлялся за десятки секунд. Надо ли уточнять, что шашечный алгоритм Монти одержал полную и разгромную победу несмотря на то, что мы даже кофе успевали выпить, пока Чекерс Кинг раздумывал над ходом в режиме максимальной сложности с глубиной в 8 полуходов. То есть четыре полноценных хода. Один раз на добрых полчаса задумался. И все равно проиграл.
– Сколько полуходов просчитывает твой алгоритм? – спросил я.
– Двенадцать, – спокойным тоном ответил Монтгомери, как будто я про температуру за окном узнавал. – Я использовал алгоритм альфа-бета отсечения, усиленный моей собственной эвристической оценкой позиции, позволяющей заранее отбросить бесперспективные варианты. Кроме того, я схитрил и жестко прописал некоторые наиболее эффективные дебюты из шашечной теории, взятой из учебника. То есть там, где позиция совпадает с хорошо известной дебютной, программе ничего считать не нужно.