Перейти к содержанию

Поведение карт (стратегия)

Поведение карты.

Предоставляет заготовленные поведения на действия для карты.

Замена для типов карт:

  • NumberBehavior: Стандартное поведение всех карт Mau.
  • TurnBehavior: Пропуск хода для следующего игрока.
  • ReverseBehavior: Разворот порядка ходов.
  • TakeBehavior: Взятие карт для следующего игрока.
  • WildColorBehavior: Выбор цвета для карты.
  • WildTakeBehavior: Выбор цвета и взятие карт для следующего игрока.

Особые поведения:

  • TwistBehavior: Обмен картами между двумя игроками.
  • RotateBehavior: Обмен картами между всеми игроками.

BaseBehavior

Bases: ABC

базовое поведение карты.

К каждой карте можно привязать поведение, которое будет определять её действия на некоторые игровые события. Например при использовании карты они может пропустить игрока, развернуть порядок ходов или увеличить счётчик взятия карт.

Определяет интерфейс поведения карты на игровые действия.

cost class-attribute instance-attribute

cost = 0

name class-attribute instance-attribute

name = 'base'

__eq__

__eq__(other: object) -> bool

Сравнивает поведения по их типу.

prepare_used abstractmethod

prepare_used(card: MauCard) -> None

Подготовка карты к повторному использованию.

Parameters:

  • card

    (MauCard) –

    Для какой карты вызвано действие.

use abstractmethod

use(card: MauCard, game: MauGame) -> None

Активное действие карты во время её разыгрывания.

Вызывается, когда игрок кладёт кладёт верхнюю карту на верх колоды.

Parameters:

  • card

    (MauCard) –

    Для какой карты было вызвано действие.

  • game

    (MauGame) –

    В какой игре происходит действие.

BaseWildBehavior

Bases: NumberBehavior

Поведение диких карт.

После возвращения в колоду их цвет возвращается к чёрному.

cost class-attribute instance-attribute

cost = 50

name class-attribute instance-attribute

name = 'wild'

prepare_used

prepare_used(card: MauCard) -> None

Возвращает цвет карты в норму.

NumberBehavior

Bases: BaseBehavior

Базовое поведение для карт Уно.

По умолчанию записывает действия в журнал. Наследники переопределяет базовое поведение.

name class-attribute instance-attribute

name = 'number'

prepare_used

prepare_used(card: MauCard) -> None

Подготавливает карту к повторному использованию.

use

use(card: MauCard, game: MauGame) -> None

Записывает в журнал использование карты.

ReverseBehavior

Bases: NumberBehavior

Разворот порядка ходов.

cost class-attribute instance-attribute

cost = 20

name class-attribute instance-attribute

name = 'reverse'

use

use(card: MauCard, game: MauGame) -> None

Разворачивает порядок ходов в игре.

Если осталось 2 игрока, действует как пропуск следующего игрока.

RotateBehavior

Bases: NumberBehavior

Обмен картами между всеми игроками.

name class-attribute instance-attribute

name = 'rotate'

use

use(card: MauCard, game: MauGame) -> None

Обменивает карты между всеми игроками.

Срабатывает если включено правило: rotate_cards.

TakeBehavior

Bases: NumberBehavior

Взять карты для следующего игрока.

cost class-attribute instance-attribute

cost = 20

name class-attribute instance-attribute

name = 'take'

use

use(card: MauCard, game: MauGame) -> None

Увеличивает счётчик взятия карт на значение карты.

TurnBehavior

Bases: NumberBehavior

Пропуск следующего игрока.

cost class-attribute instance-attribute

cost = 20

name class-attribute instance-attribute

name = 'turn'

use

use(card: MauCard, game: MauGame) -> None

Пропускает N игроков, где N - значение карты.

TwistBehavior

Bases: NumberBehavior

Обмен картами с другим игроком.

name class-attribute instance-attribute

name = 'twist'

use

use(card: MauCard, game: MauGame) -> None

переходит в состояния обмена картами с другим игроком.

Срабатывает если включено правило: twist_hand.

WildColorBehavior

Bases: BaseWildBehavior

Карта выбора цвета.

name class-attribute instance-attribute

name = 'wild+color'

use

use(card: MauCard, game: MauGame) -> None

Выбирает новый цвет для карты.

  • При правиле auto_choose_color сам выбирает цвет.
  • При правиле random_color выбирает случайный цвет.
  • Иначе переходит в состояние выбора цвета.

WildTakeBehavior

Bases: BaseWildBehavior

Выбор цвета и взятие карт.

Представляет собой комбинацию из поведения взятия и выбора цвета. Использовать можно только в случаях, когда нет других карт. Иначе выставляет флаг блефа в True. Следующий игрок сможет проверить игрока на честность.

name class-attribute instance-attribute

name = 'wild+take'

use

use(card: MauCard, game: MauGame) -> None

Выбирает новый цвет для карты и увеличивает счётчик взятия.

Устанавливает флаг блефа для текущего игрока.

  • При правиле auto_choose_color сам выбирает цвет.
  • При правиле random_color выбирает случайный цвет.
  • Иначе переходит в состояние выбора цвета.