25.08.2018  

Игровые программы

В игровых программах, построенных на антагонизме (или мы — или он) компьютер часто играет хорошо и даже побеждает человека. Создаётся впечатление, что машина умнее нас и алгоритмы её поведения очень сложны. На самом деле всё гораздо проще, в чём мы и постараемся вас убедить.

Известно, что при правильной игре в крестики-нолики победителей нет, однако на практике, в случае ошибки одного игрока, возможна победа другого. Обыграть же правильно составленную программу невозможно (компьютер не ошибается!). И мы с вами сейчас попробуем «научить» машину не проигрывать.

Будем играть на поле 3x3. Пусть компьютер играет за «нолик». Например, в ситуации, изображённой на рисунке, понятно, куда ставить «нолик», чтобы избежать поражения:

Тактике «если два крестика стоят на одной линии, то ставь на неё же нолик», надо научить машину. Предполагается, что она будет обрабатывать информацию об игре для принятия решения об очередном ходе. Эта информация должна быть представлена с помощью значений величин используемого языка программирования. К таким величинам относятся, например, таблицы или переменные, знакомые нам из курса математики.