Алак был изобретен математиком А. К. Дьюдни и описан в его книге Planiverse 1984 года. Правила Алака просты:
Алак - это игра для двух игроков на одномерной доске с одиннадцатью слотами. Каждый слот может содержать не более одного куска одновременно. Есть два вида фигур: «х» и «о». Х принадлежат одному игроку, О - другому. Начальная конфигурация платы:
xxxx___oooo
Игроки ходят по очереди. На каждом ходу каждый игрок может перемещать только одну фигуру, один раз. Игрок не может отказаться от своего хода. Игрок может переместить любую из своих фигур в следующий незанятый слот вправо или влево, что может включать перепрыгивание через занятые слоты. Игрок не может сдвинуть фигуру со стороны доски.
Если ход создает рисунок, в котором фигуры противника с обеих сторон окружены двумя фигурами цвета движителя (без промежуточной пустой ячейки), то эти окруженные фигуры удаляются с доски.
Цель игры состоит в том, чтобы убрать все фигуры противника, после чего игра заканчивается. Удаление «все, кроме одного» также завершает игру, так как противник не может окружить вас одним куском, и в любом случае он всегда проигрывает в течение нескольких ходов.
Я нашел эту игру онлайн и подумал: а можно ли играть в гольф?
Правила игры в гольф
- Ваш код должен соответствовать всем правилам игры, обработке захватов, правильному перемещению и т. Д. (Единственное исключение - вам не нужно добавлять бота, но вы должны как-то контролировать обоих игроков, а один игрок должен быть человеком).
- Ввод должен быть перемещением фигуры на плитке X на плитку Y или выходом. Например, вы можете использовать,
1 4
чтобы сказать «переместить этот кусок из плитки 1 в плитку 4».quit
завершит программу, хотя использование Control- Cбудет приемлемым. Вы также должны проверить, является ли ход недействительным (выйдя за пределы доски или переместившись куда-нибудь, что вам нужно будет пересечь незанятые места, чтобы добраться до или отправить сообщение, которое не является парой плиток илиquit
). - Выходы для игроков - победителей и инвалиду должны быть
P1 WINS
,P2 WINS
иINVALID
, соответственно. (Все это 7 символов.) - Выход должен показать плату. Это все, что требуется.
- Не имеет значения, используете ли вы какие-либо вспомогательные средства, например пронумерованные плитки или другие элементы.
Задача заканчивается, если:
- Один ответ получает 50 голосов
- Один ответ остается самым популярным в течение 3 недель, и другие ответы за это время не были опубликованы.
и задача имеет как минимум 3 ответа (так что есть реальная конкуренция).
Правила игры
- Игрок слева должен начать первым.
- Только один кусок занимает квадрат за раз. Вы перемещаете кусок влево или вправо, пока он не попадет на незанятое место. Доска не оборачивается, и вы не можете перемещаться по незанятым областям. Например:
xoo__o
, Здесьx
перемещение вправо изменит доску на_oox_o
.xxooo_
, Здесь крайний левыйx
мог двигаться к сдаче_xooox
, которая захватываетo
s, оставляя_x___x
.x__oox
, Здесьo
s не фиксируются (все еще есть разрыв). Захват невозможен, потому что вы не можете перемещаться по незанятым пространствам.x
Слева может двигаться только одно место, потому что нет никаких других частей между (выезд_x_oox
).
- Несколько смежных фигур могут быть захвачены одновременно, если группа окружена фигурами противника. Например, от
x_oox
до_xoox
будет захватывать обаo
с и в результате_x__x
. - Если после хода вы сначала захватываете фигуры противника , прежде чем проверять, следует ли удалить свою фигуру. Возьмите два примера:
o_oxx
кoxox_
. Сначалаo
захватывается второй ,ox_x_
поэтому первыйx
остается на доске.o_oox
кoxoo_
. На этот раз ни один изo
s не захвачен, поэтомуx
вместо этого захватывается.- Если у вас есть только одна фигура, игра заканчивается, потому что вы не можете захватить только одну фигуру.
Пусть игра начнется! Я с нетерпением жду встречи с тем, что вы придумали.