Как компьютер обыграть
4 мая 2007
Рубрика: Проза и юмор.
Автор: Сергей Чинаев.

pic
Компьютер мне достался «снаряженным». Осматриваясь, я обнаружил кнопочку с надписью PerfectPool. Нажал. После некоторого раздумья экран моей «троечки» почернел, а потом появилась вполне понятная надпись «Прекрасный бильярд». Мысленно потирая руки в предвкушении легкой победы, поскольку считал свой глазомер неплохим, я поразбирался в кнопочках…Что-то нажав, что до сих пор никак не найду, получил, как понял чуть позже, учебную игру. После первых нескольких игр, быстренько проигранных, стало понятно, что биту в лузу класть необязательно, но сложностей тут вроде нет. Траектория шара показана, направляй ее кием да бей…

Обыграв соперника по имени «умный» несколько раз, я смело нажал «соревнование».
Компьютер торжественно выложил на синий стол треугольник шаров. Бью в средний шар, чтобы бита не металась по полю. Шары раскатились, а несколько чуть не попали в лузы. Но что это? «Умный» начал быстренько класть шары по лузам. Только когда до моего проигрыша осталось несколько шаров, компьютер вдруг промазал. Есть справедливость, решил я, и… тоже попал «в молоко».

Компьютер смеялся надо мной! Его бита, казалось, вразвалочку, легонько касалась шаров, а счет стремительно рос от игры к игре. Поняв, что мне никогда не сравняться с программой по точности, я начал искать «асимметричное решение». Точность машины оказалась «нечеловеческой». Временами я выигрывал, так машина, начиная первой игру после проигрыша, разбивала шары… совершенно одинаково в пяти-шести играх в серии!

С перепуга я решил сменить соперника на «тупого». Хотя я его и разгромил, но все же неприятно было сознавать, что машина играет в «поддавки». Самолюбие заставило сыграть с «гением», но очень скоро, после серии сокрушительных разгромов, самолюбие выздоровело, и я вновь пригласил «умного».

«Умный», когда мне удавалось его (чуть не сказал — побить, но это уж слишком) победить, разбивал совершенно одинаково, разворачивая кий из среднего положения, легким касанием последнего шара, и часто при этом закатывая один шар. Тут меня осенило! Пусть программа и сложная, да не чересчур! На учебной игре она не всегда показывала траекторию после соударения биты и шара — значит, рассчитывать траектории всех шаров после разбивания программе не по силам. Человеку ведь проще, обрадовался я. Машина бьет только тогда, когда все просчитала. Попробую-ка я «вмазать» как следует при разбивании. Помнится, теоретическая механика утверждала, что центр масс системы шаров движется в заданном направлении, а теория вероятностей уверена в том, что чем больше число соударения шаров, тем больше вероятность того, что какой-нибудь шарик влетит в лузу…

Широко, от души швырнув мышь, я поразился. Изображение распалось на отдельные фазы, шары заметались по полю, кулер процессора взвыл от натуги… Пятерка шаров, впрыгнув в лузы, глухо стукнула в утробе стола! ВОТ Я ТЕБЯ И ДОСТАЛ, дорогой! Гордый своим открытием, я смело ударил по кучке шаров возле борта. Три шара, в том числе и бита, вскочили в лузы… Между тем компьютер спокойно, без фокусов укладывал шар за шаром в лузы. Наконец, когда осталось три-четыре шара, он демонстративно промазал. Тщательно нацеленная бита боднула шар, тот заметался в лузе … и уступил. Луза, казалось, схлопнулась за битой, но не забыла выплюнуть шар. При малом количестве, оказывается, нужен точный удар, да еще не всякой силы.

Пришлось вновь напрячься. А попробую-ка я уменьшить количество шаров в игре! Правила ведь определяет хозяин.

Помогло. Раз за разом, забивая побольше с разбивания, я набрался наглости и пригласил в соперники «гения». Только позже я понял, почему после такого решения кулер умиротворенно заурчал. Повозив без особого труда меня носом по столу, «гений» быстро объяснил, что это не я выигрываю, а компьютер проигрывает, чтобы хозяину хотелось снова попытать счастья.

Придя в себя, я стал замечать, что возможности программы и игрока просто несопоставимы. Во-первых, компьютер выбирает направление, а потом шар после его удара лишь катится по назначенному пути. Во-вторых, борта стола «плавают». Они смещены, и приходится запоминать их координаты: от одного борта шарик отражается в воздухе чуть не на полдиаметра шара, в другом свободно катится, утопая на треть диаметра. Мало того, эти погрешности слегка меняются со временем! Заметить это непросто, но когда шарик вдруг чуть утопает в борте, который прежде был в норме, трудно не заметить. В-третьих (смотри рисунок), игрок должен найти прямую, след плоскости, в которой должна катиться цель. Затем запомнить расстояние от этой прямой до какой-либо линии на шаре, довернуть кий до пересечения с эллипсом, в который превращается след плоскости после доворота и довернуть кий на половину расстояния между проекциями центров биты и цели. Не забыть прикинуть силу удара в зависимости от расстояния до лузы. Посмотреть, куда покатится шар, особенно после касательного удара, «закрученный». Проверить, не отразится ли бита в коварно подставленную лузу. Игроку это все упомнить невозможно. А вот программа, наоборот, все помнит… и учится. Я с удивлением недавно увидел, как компьютер бьет в острие клина при разбивании. Впрочем, он в этом ударе быстро разочаровался.

Итак, выводы: выиграть машину можно, нужно только определить ее возможности и слегка их превысить. Стратегия игры, для начала, чтобы в себя поверить, может быть такой. Следует играть по своим правилам. Стоит уменьшить количество шаров. Пока шаров много, человек имеет преимущество. Следует пытаться бить по кучам, если дальше есть лузы, только помнить, что и бита может прыгнуть в лузу. Стоит играть так: партию, если выигрыш — еще одну. Компьютер крайне редко выигрывает разбивание, тогда как игрок выигрывает восемь разбиваний из десятка, и можно забить… до шести шаров, пока в программе не ограничена сила удара (точнее, скорость движения кия). Сложно бить по дальним шарам, когда их поперечник чуть не десяток пикселей — ошибка велика. Не стоит стремиться отыграться. Компьютер в первой партии компенсирует свои погрешности и начинает класть в лузу шар за шаром. Не стоит, в конце концов, играть с «гением». Впрочем, по правилам этой статьи можно обыграть даже «гения». Иногда. Пока он не «раскусил» все ваши хитрости.

pic

Наверное, чтобы сравниться с программой, стоит ее доработать. Во-первых, стоит шар покрыть, скажем, шестиугольниками, чтобы в каждом положении рядом со следом плоскости лузы на шаре была бы какая-нибудь линия. Во-вторых, стоит увеличивать масштаб при разглядывании дальнего шара, скажем, правой кнопкой мыши. В-третьих, если смещение бортов неустранимо программно, стоит ввести регулировку. В-четвертых, стоит покрыть борта или поле в «шашечку», тогда не только программа сможет применять рикошет. В-пятых, а может быть, во-первых, стоит для «битых» игроков включить учебный курс «высшей бильярдной школы». Там стоило бы без премудростей, в двух измерениях, на виде сверху, порешать учебные задачи, чтобы знать, в каких положениях бить не следует.

Впрочем, и так интересно поломать голову, выиграть, а потом… убедиться, что программа тебя пожалела.

pic

Orphus system
Подписывайтесь на канал infoCOM.UZ в Telegram, чтобы первыми узнавать об ИКТ новостях Узбекистана
В Telegram
В Одноклассники
ВКонтакте