Темы курсовых работ по «Технология программирования (Python)»


Тема 12: Стратегия компьютера при игре в калах



бет24/51
Дата26.03.2023
өлшемі0,69 Mb.
#76182
1   ...   20   21   22   23   24   25   26   27   ...   51
Байланысты:
Курсовые работы Python

Тема 12: Стратегия компьютера при игре в калах
Дискуссии о «разумном» поведении компьютеров начались задолго до появления реальных вычислительных машин. Многие согласятся, что высокое мастерство в какой-либо интеллектуальной игре, не поддающейся полному анализу, должно свидетельствовать о незаурядных умственных способностях игрока. Если компьютер к тому же обучаем, то отрицать его интеллект еще труднее. Говоря о машинной игре, чаще всего имеют в виду шахматы, однако даже самые лучшие программы оказываются на уровне весьма посредственных шахматистов. Но в других играх можно достичь большего успеха.
Калах, известный также и под другими названиями (манкалавариовари), — это старинная африканская игра. По ее теории написано очень мало, тем не менее в течение столетий в калах играют с помощью камешков представители самых разных культур. Хотя игра эта — чистая борьба умов, не содержащая какого-либо случайного элемента, африканцы режутся в нее постоянно. Благодаря нехитрому инвентарю и простым правилам, калах великолепно подходит и для игры с машиной. Как показывают современные исследования, компьютер с программой наподобие предлагаемой здесь играет в калах лучше любого человека.
Игровое поле для калаха схематически изображено на рис. 12.1. Игроки (их двое) садятся друг против друга. Каждому игроку принадлежат шесть малых лунок вдоль длинной стороны поля и одна лунка большего размера по его правую руку, называемая калахом. В начале игры в каждую малую лунку помещается некоторое количество к камней (для k ≤ 3 известно полное решение; африканцы обычно используют k = 6). Ход игрока заключается в том, что он забирает все камни в одной из малых лунок на своей стороне и раскладывает их по одному в остальные лунки, двигаясь против часовой стрелки. Первый камень кладется в лунку справа от той, из которых взяты камни, затем в следующие, включая свой калах и малые лунки противника, но не калах противника. Может случиться (и это допускается правилами), что раскладывая камни, мы обойдем всю доску и вернемся в исходную лунку или даже пройдем дальше. На рис. 12.2а и b, показаны позиции до и после выполнения такого циклического хода.



Рисунок 12.1. Игровое поле для калаха. Числа в лунках показывают количество находящихся там камней.

Рисунок 12.2а. Перед циклическим ходом Макса. Макс ходит из лунки 6.



Рисунок 12.2b. После циклического хода Макса. Калах Макса пополнялся дважды.

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





Рисунок 12.3a. Серия ходов из лунки 6 Макса. Последний камень попадает в лунку 3 Макса, и из этой лунки делается повторный ход.

Рисунок 12.3b. После серии ходов. Камни из лунки 3 разложены в следующие лунки.



Рисунок 12.4а. Перед взятием в плен камней Мима. Ходом из лунки 3 Макс попадает в лунку 4 Мина.





Достарыңызбен бөлісу:
1   ...   20   21   22   23   24   25   26   27   ...   51




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет