Skip to content

Моделирование ходов и раундов

nergal-perm edited this page Mar 23, 2021 · 3 revisions

Описание

Требования

Описание В нотации?
Ходы могут состоять из любого количества действий и проверок, а также других ходов и раундов +
Ходы и раунды могут повторяться любое количество раз +
Необходимо проверять условия завершения хода и/или раунда +
В течение раунда игроки совершают действия в определенной очередности +
На какое-либо действие игрока может отвечать любой другой игрок
Раунды не могут включать в себя действия -
В начале и конце раунда могут выполняться особые действия (в том числе и игрой)
Игрок может ответить на действие другого игрока +

Элементы нотации

  • Общие
    • Каждый элемент должен иметь свой тип: round - раунд, turn - ход, choice - выбор, test - проверка, action - действие, counteraction - ответное действие
    • Для удобства каждый элемент может иметь уникальное название
    • minOccurs - минимальное количество повторов раунда, хода или действия.
    • maxOccurs - максимальное количество повторов раунда, хода или действия. Значение unbounded - неограниченное число повторов. Требует наличия вложенного элемента (на любом уровне вложенности) test для определения момента завершения раунда, хода или действия.
  • Раунд
    • order - очередность хода игроков : straight - прямая, от первого к последнему, reverse - обратная, от последнего к первому

Примеры описания структуры ходов для разных игр

Крестики-нолики

<round order="straight" minOccurs="1" maxOccurs="unbounded">
	<turn>
		<action type="Поставить символ" />
		<test type="Условия завершения игры" />
	</turn>
</round>

Быки-коровы (для двух игроков)

<round order="straight" minOccurs="1" maxOccurs="unbounded">
	<turn>
		<action type="Попытаться угадать число">
			<counteraction type="Предоставить результат попытки"/>
		</action>
		<test type="Условия завершения игры" />
	</turn>
</round>

Мачи коро

<round order="straight" minOccurs="1" maxOccurs="unbounded">
	<turn>
		<action type="Бросить кубик" />
		<phase name="Фаза доходов">
			<round order="straight" minOccurs="1" maxOccurs="1">
				<turn>
					<action type="Заплатить в резерв другому игроку" />
					<action type="Получить в свой резерв доход" />
				</turn>
			</round>
			<round order="straight" minOccurs="1" maxOccurs="1">
				<turn>
					<action type="Получить деньги из резерва на счет" />
				</turn>
			</round>
		</phase>
		<choice name="Фаза строительства">
			<action type="Построить предприятие" />
			<action type="Построить достопримечательность" />
			<action type="Пропустить строительство" />
		</choice>
	</turn>
	<test type="Условия завершения игры" />
</round>
Clone this wiki locally