![](https://habrastorage.org/getpro/habr/post_images/ea1/289/aa7/ea1289aa7da247ac169f989d8f4380b1.png)
Огромный мир — в зерне песка,
В единой горсти — бесконечность,
И небо — в чашечке цветка.
сэр Уильям Блейк
По одной капле воды… — человек, умеющий мыслить логически, может сделать вывод о возможности существования Атлантического океана или Ниагарского водопада, даже если он не видал ни того, ни другого и никогда о них не слыхал.
сэр Артур Конан Дойл "Этюд в багровых тонах"
Сегодня, я хочу поддержать почин уважаемого Unlimion и рассказать о попытке реставрации правил игры, считающейся, на сегодняшний день, древнейшей из известных игр, связанных с перемещением фишек по доске. Доски для этой игры были найдены в 1926-1927 г.г., знаменитым археологом сэром Леонардом Вулли, на раскопках развалин города-государства Ур в Месопотамии. Сама игра датируется 2600-2500 до н.э. Поскольку название игры до сих пор остаётся неизвестным, она именуется в честь города, в котором была найдена.
![](https://habrastorage.org/getpro/habr/post_images/8be/10e/4fe/8be10e4feba94de1b3661c1e59690e75.jpg)
![](https://habrastorage.org/getpro/habr/post_images/457/d75/07b/457d7507bfe7a038f49cf995b3199840.png)
Статья Дмитрия представляет собой великолепный образчик применения «дедуктивного метода» в реальной жизни и сделала бы честь самому Шерлоку Холмсу. На мой взгляд, он предложил правила, объясняющие практически всё:
- Странную форму доски и её разметку
- Использование для игры плоских фишек
- Использование пометок на фишках
- Непривычный набор игровых «костей»
Геймплей полученной игры великолепен. Конечно возможно, что древние шумеры играли в неё как то иначе, но, в этом случае, я считаю, что они просто сами себя наказали. После знакомства с предложенными правилами, просто невозможно представить себе, что в эту игру можно играть по другому.
![](https://habrastorage.org/getpro/habr/post_images/162/8f2/b85/1628f2b850141153c56cc0438ec32b50.jpg)
Итак, каждый игрок имеет по семь фишек. Цель игры — провести каждую из фишек по показанной выше траектории, убрав их, тем самым, с доски. Для выполнения последнего хода, убирающего фишку с доски, требуется «точный» бросок. Легко заметить, что по центральной (общей для игроков) линии, каждая фишка движется сначала по направлению к малому блоку, а затем, в противоположном направлении.
Для того, чтобы не запутаться в направлениях движения, после прохождения «поля превращения» (крайняя, ближняя к игроку клетка в малом блоке), фишка переворачивается. Фишки могут «рубить» друг друга, встав на занятую клетку (срубленная фишка возвращается в стартовый набор игрока), но Дмитрий предполагает, что рубить друг друга могут только одинаковые фишки — перевёрнутая не может «рубить» не перевёрнутую и наоборот. От себя могу заметить, что это действительно делает игру более интересной. В одних случаях вражеские фишки представляют собой цель, в других — препятствие.
![](https://habrastorage.org/getpro/habr/post_images/be9/46c/b66/be946cb666f142fc9dc7f3130ef69ab8.png)
- Одна пирамидка из трёх упала белой вершиной вверх — можно передвинуть любую фишку на одну клетку или выставить на первое поле доски одну из фишек стартового набора
- Две белых вершины вверх — две клетки или выставление новой фишки на вторую клетку
- Три белых вершины — ход на три клетки или третья позиция по ходу движения на доске
- Все пирамидки упали чёрной стороной вверх — ход на четыре клетки или выставление фишки на первую по движению «розетку»
Странный набор «костей» вполне осмысленен. Вместо трёх костей с двумя возможными состояниями, можно было бы использовать одну с четырьмя (хотя бы тот же тэтраэдр, раскрашенный в 4 цвета), но, в этом случае, все возможные результаты бросков были бы равновероятны. В случае использования набора из трёх костей, одно и двухочковые броски более вероятны чем выброс трёх или четырёх очков. Этот факт самым непосредственным образом влияет на игровой процесс.
При такой интерпретации ходов, «розетки» обретают смысл. Дмитрий предполагает, что остановившись на такой клетке, игрок имеет право сделать дополнительный ход. Выбрасывая одни «четверки», можно быстро пробежать через всю доску, не дав противнику даже возможности хода! Даже выбрасывая очки отличные от «четвёрок», мне удавалось, двигаясь несколькими фишками, делать подряд 3-4 хода. Игра превращается в настоящую битву за «розетки».
![](https://habrastorage.org/getpro/habr/post_images/c20/68b/124/c2068b124abe561c40a65b32c5e0d970.jpg)
Понятно, что здесь мы вступаем в область предположений, но с введением этих правил, игра буквально обретает новое измерение. Дополнительно, Дмитрий вводит правило, не позволяющее «срубать» перевёрнутую фишку, стоящую на последней клетке доски. Поскольку это поле «запирает» выход не перевёрнутых фишек с начальных полей, в тактическом отношении, это правило также интересно.
Впервые прочитав про «Ур», я загорелся целью реализовать его. В самом деле, я видел несколько вариантов Сенета, но ни одной реализации Ура мне найти не удалось. А ведь эта игра не менее интересна! В техническом отношении, работа над игрой полностью оправдала все мои ожидания. Мне пришлось повозиться и с необычным «превращением» фишек (фишка переворачивается не при установке на поле превращения, а при прохождении через него) и с выстраиванием фишек в столбик. Историю всех этих мытарств желающие могут посмотреть на GitHub-е. Практически под занавес, ZoG нанёс свой удар:
![](https://habrastorage.org/getpro/habr/post_images/b03/1df/6be/b031df6bea52d0c03e4046872b8d0aa6.png)
Под конец игры, в результате постоянного «срубания» и возвращения в игру фишек, накапливается «критическая масса» повторяющихся позиций. ZoG отсчитывает третье повторение и объявляет, что игра закончилась вничью! Могу сказать, что это очень обидно, практически закончив игру, на последнем ходу, узнать, что, по мнению программы, произошла ничья. Самое печальное, что отменить эту проверку (очевидно не имеющую большого смысла в играх со случайной генерацией) никак нельзя. Нельзя даже увеличить значение количества повторений, при котором игра завершается! Это именно то, что я называю тёмной стороной ZRF.
Мне пришлось добавить варианты игры с рандомным противником (поскольку игры для одного игрока рассматриваются в ZoG как головоломки, в них, по понятным причинам, отключен контроль повторения позиций), попутно отказавшись от использования весьма удобного предиката friend? (внезапно выяснилось, что у рэндома нет друзей). В конечном итоге, все проблемы с реализацией удалось решить, вернув к жизни игру, в которую, возможно, играли 5000 лет назад.
Мы очень многое забыли…
Но мы вспоминаем потерянное…
Или создаём что то новое