1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/daochenzha-rlcard

Клонировать/Скачать
games.md 29 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 18:31 21f438a

Блэкджек

Блэкджек — это популярная во всём мире карточная игра, известная также как «Двадцать одно». Цель игры — обыграть дилера, набрав больше очков, чем дилер, но не превысив 21. В нашем наборе инструментов мы реализуем простую версию блэкджека. В каждом раунде у игрока есть только два варианта действий: «взять карту» (hit) и «остаться» (stand), завершая ход. Игрок «перебирает», если его сумма превышает 21 очко. После того как игрок завершает свои ходы (выбирает stand и не перебирает), дилер открывает свою скрытую карту и берёт карты до тех пор, пока не наберёт минимум 17 очков.

Представление состояния в блэкджеке

В этой игрушечной среде мы кодируем состояние как массив [score игрока, score дилера], где score игрока — это очки, полученные игроком на данный момент, а score дилера — это значение карты, которая открыта у дилера.

Кодирование действий в блэкджеке

В простом блэкджеке есть два действия, которые кодируются следующим образом:

ID действия Действие
0 взять карту
1 остаться

Выигрыш в блэкджеке

Игрок может получить вознаграждение -1 (проиграть), 0 (ничья) или 1 (победа) в конце игры.

Ледук Холдем

Ледук Холдем — это уменьшенная версия лимитированного Техасского Холдема (впервые представленная в статье «Блеф Байеса: моделирование оппонентов в покере»). Колода состоит всего из двух пар короля, дамы и валета, всего шесть карт. Каждая игра проводится с двумя игроками, двумя раундами, максимальным размером ставки в два шага и повышением ставок на 2 и 4 в первом и втором раунде соответственно. В первом раунде один игрок случайным образом ставит 1 единицу в банк в качестве малого блайнда, а другой ставит 2 единицы в качестве большого блайнда. Каждому игроку сдаётся по одной карте, после чего начинается ставка. Первым действует игрок с малым блайндом. Во втором раунде сначала открывается одна общая карта, затем игроки снова делают ставки. Наконец, выигрывает тот игрок, чья рука имеет тот же ранг, что и общая карта. Если ничья, то выигрывает тот, у кого ранг выше. Другие правила, такие как «фолд», можно найти в игре «Лимитированный Техасский Холдем».

Представление состояния Ледук Холдема

Состояние кодируется как вектор длиной 36. Первые 3 элемента соответствуют картам руки. Следующие 3 элемента соответствуют общей карте. Последние 30 элементов соответствуют фишкам текущего игрока и оппонента (фишки могут быть в диапазоне от 0 до 14). Соответствие между индексом и картой выглядит следующим образом.

Индекс Значение
0~2 J ~ K в руке
3~5 J ~ K как общая карта
6~20 0 ~ 14 фишек для текущего игрока
21~35 0 ~ 14 фишек для оппонента

Кодирование действия в Ледук Холдеме

Кодирование действий такое же, как и в игре «Лимит Холдем».

Выплата в Ледук Холдеме

Выплата рассчитывается аналогично игре «Лимит Холдем».

Лимит Техасский Холдем

Техасский Холдем — популярная игра со ставками. Каждому игроку раздаются две закрытые карты, называемые карманными картами. Затем выкладываются пять общих карт в три этапа (флоп, терн и ривер). Каждый игрок ищет пять лучших карт среди карманных карт и общих карт. Есть четыре раунда ставок. В каждом раунде каждый игрок может выбрать «колл», «чек», «рейз» или «фолд».

В фиксированном лимитном Техасском Холдеме каждый игрок может выбирать только фиксированную сумму рейза. И в каждом раунде количество повышений ограничено четырьмя.

Представление состояния Лимит Техасского Холдема

Состояние кодируется как вектор длины 72. Первые 52 элемента представляют карты, где каждый элемент соответствует одной карте. Рука представлена двумя карманными картами плюс наблюдаемыми общими картами на данный момент. Последние 20 элементов... История ставок. Соответствие между индексом и картой следующее:

Индекс Значение
0~12 Пиковая A ~ Пиковая K
13~25 Червовая A ~ Червовая K
26~38 Бубновая A ~ Бубновая K
39~51 Трефовая A ~ Трефовая K
52~56 Повышение номера в первом раунде
57~61 Повышение номера во втором раунде
62~66 Повышение номера в третьем раунде
67~71 Повышение номера в четвёртом раунде

Кодирование действий в лимитном техасском холдеме Существует 4 действия в лимитном техасском холдеме. Они кодируются следующим образом:

Идентификатор действия Действие
0 Кол (Call)
1 Рейз (Raise)
2 Фолд (Fold)
3 Чек (Check)

Выигрыш в лимитном техасском холдеме. Стандартной единицей измерения, используемой в литературе, является миллибиг блайнды за руку (mbb/h). В наборе инструментов вознаграждение рассчитывается на основе больших блайндов за руку. Например, вознаграждение в размере 0,5 (-0,5) означает, что игрок выигрывает (проигрывает) 0,5 от суммы большого блайнда.

Ду Дичжу

Ду дичжу — одна из самых популярных китайских карточных игр с сотнями миллионов игроков. В неё играют три человека одной колодой из 54 карт, включая красного джокера и чёрного джокера. После торгов один игрок становится «хозяином», который может получить дополнительные три карты, а два других становятся «крестьянами», которые объединяются, чтобы сразиться с хозяином. В каждом раунде игры первый игрок должен сыграть карту или комбинацию, а остальные два игрока могут решить, следовать ли им или «пропустить». Раунд заканчивается, если два последовательных игрока выбирают «пропуск». Игрок, сыгравший карты самого высокого ранга, будет первым играть в следующем раунде. Цель игры — стать первым игроком, который избавится от всех карт на руках. Для получения более подробной информации о правилах см. Википедию или Байкэ.

В наборе инструментов мы реализуем стандартную версию Ду дичжу. На этапе торгов мы эвристически назначаем одного из игроков «хозяином». В частности, мы подсчитываем количество ключевых карт или комбинаций (карты высокого ранга и бомбы), и игрок с самой сильной рукой выбирается как «хозяин».

Представление состояния Ду дичжу

На каждом этапе принятия решения соответствующий игрок сможет наблюдать текущее состояние (или информационный набор в игре с несовершенной информацией). Состояние состоит из всей информации, которую игрок может наблюдать со своей точки зрения. Мы кодируем информацию в читаемый словарь Python. Следующая таблица показывает структуру состояния:

Ключ Описание Пример значения
seen_cards Три закрытые карты, распределённые хозяину после торгов. Затем эти карты будут обнародованы всем игрокам. TQA
landlord Идентификатор хозяина 0
self Идентификатор текущего игрока 2
trace А В новой версии RLCard мы понимаем, что действия не нужно абстрагировать. Вместо этого мы можем извлечь характеристики действий и сделать их входными данными. Таким образом, агент сможет эффективно рассуждать о большом пространстве действий.

Аналогично кодированию состояний каждое действие кодируется в 54-мерный одномерный вектор.

Выигрыш

Если арендодатель первым избавится от всех карт у себя на руках, он выиграет и получит награду 1. Два крестьянина проиграют и получат награду 0. Аналогично, если один из крестьян первым избавится от всех карт на руке, оба крестьянина выиграют и получат награду 1. Арендодатель проиграет и получит награду 0.

Маджонг

Маджонг — это игра на основе плиток, разработанная в Китае и распространившаяся по всему миру с XX века. Обычно в неё играют 4 игрока. Игра ведётся с использованием набора из 136 плиток. По очереди игроки берут и сбрасывают плитки, пока...

Цель игры состоит в том, чтобы собрать законную комбинацию, используя 14-ю вытянутую плитку для формирования 4 наборов и пары. Мы пересмотрели игру в упрощённой версии, где все выигрышные наборы равны, и игрок выигрывает, как только собирает 4 набора и пару. Пожалуйста, обратитесь к деталям на Wikipedia или Baike.

Представление состояния маджонга

Представление состояния маджонга кодируется как 6 плоскостей характеристик, где каждая плоскость имеет 34 X 4 измерения. Для каждой плоскости столбец плоскости указывает количество карт в заданном наборе карт, а строка плоскости представляет каждый вид карт (пожалуйста, обратитесь к таблице пространства действий). Закодированная информация может быть представлена следующим образом:

Плоскость Характеристика
0 Карты в руке текущего игрока
1 Сыгранные карты на столе
2–5 Общедоступные стопки каждого игрока

Пространство действий маджонга

В маджонге есть 38 действий.

Идентификатор действия Действие
0–8 Бамбук-1 — Бамбук-9
9–17 Персонажи-1 — Персонаж-9
18–26 Точки-1 — Точки-9
27 Драконы-зелёные
28 Драконы-красные
29 Драконы-белые
30 Ветры-восток
31 Ветры-запад
32 Ветры-север
33 Ветры-юг
34 Понг
35 Чоу
36 Гонг
37 Стенд

Награда за маджонг

Награда рассчитывается по конечному состоянию игры, где выигравшему игроку присуждается 1, проигравшим игрокам — -1. И если никто не выигрывает в игре, то награда всех игроков будет равна 0.

Безлимитный техасский холдем

Безлимитный Техасский Холдем имеет схожие... Представление состояния игры Uno

В игре Uno состояние кодируется в 4 плоскости признаков. Размер каждой плоскости — 4*15. Номер строки 4 означает четыре цвета. Номер столбца 15 означает 10 числовых карт от 0 до 9 и 5 специальных карт: «Дикий», «Дикий взять четыре», «Пропустить ход», «Взять две карты» и «Обратить ход». Каждая запись плоскости может быть равна 1 или 0. Обратите внимание, что текущий метод кодирования является лишь примером того, как можно закодировать функцию. Пример закодированных плоскостей приведён ниже:

Плоскость Функция
0-2 Рука
3 Цель

Мы используем 3 плоскости для представления руки игроков. В частности, плоскости 0–2 представляют 0 карт, 1 карту и 2 карты соответственно. Плоскости 4–6 такие же.

Кодирование действий в Uno

Всего в Uno 61 действие. Они кодируются следующим образом. Подробное сопоставление действия и его идентификатора приведено в rlcard/games/uno/jsondata/action_space.json:

Идентификатор действия Действие
0~9 Красные числовые карты от 0 до 9
10~12 Красные карты действий: пропустить ход, обратить ход, взять две карты
13 Красная карта «дикий»
14 Красная карта «дикий взять четыре»
15~24 Зелёные числовые карты от 0 до 9
25~27 Зелёные карты действий: пропустить ход, обратить ход, взять две карты
28 Зелёная карта «дикий»
29 Зелёная карта «дикий взять четыре»
30~39 Синие числовые карты от 0 до 9
40~42 Синие карты действий: пропустить ход, обратить ход, взять две карты
43 Синяя карта «дикий»
44 Синяя карта «дикий взять четыре»
45~54 Жёлтые числовые карты от 0 до 9
55~57 Жёлтые карты действий: пропустить ход, обратить ход, взять две карты
58 Жёлтая карта «дикий»
59 Жёлтая карта «дикий взять четыре»
60 Взять карту

Вознаграждение в Uno

Каждый игрок получит вознаграждение -1 (проигрыш) или 1 (выигрыш) в конце игры.

Gin Rummy

Gin Rummy — популярная карточная игра для двух человек с использованием обычной колоды из 52 карт (туз считается низкой картой). Дилер раздаёт своему противнику 11 карт и себе 10 карт. Каждый игрок пытается собрать комбинации из 3+ карт одного ранга или 3+ последовательных карт одной масти. Если количество неподходящих карт («мертвых» карт) меньше или равно 10, игрок может сбросить карты. Если все карты можно собрать в комбинации, игрок может выиграть. Подробнее см. на Wikipedia.

Если игрок сбрасывает карты или выигрывает, раунд заканчивается, каждый игрок выкладывает свои комбинации, и подсчитываются очки. Если игрок сбрасывает карты, противник может выложить некоторые из своих «мертвых» карт, если они дополняют комбинации сбросившего игрока. Очки — это разница между количеством «мертвых» карт у двух игроков. Если значение положительное, его получает игрок, закончивший раунд. В противном случае, если значение равно нулю или отрицательное, противник перебил игрока, закончившего раунд, и получает значение очков плюс бонус за перебивку в размере 25 очков.

Первым сбрасывает не дилер (или сбрасывает, если может). Если игрок не сбросил карты и не выиграл, следующий игрок может взять сброс или взять карту из закрытой стопки. Он может сбросить и закончить раунд, в этом случае раунд завершается. В противном случае он должен сбросить, и следующий игрок продолжает игру таким же образом. Если стопка уменьшается до двух карт, то раунд объявляется завершенным и очки не начисляются. Из AS в KC

Информация, которая была закодирована, может быть представлена следующим образом:

План Характеристика
0 карты в руке текущего игрока
1 верхняя карта колоды сброса
2 мёртвые карты: карты в колоде сброса (исключая верхнюю карту)
3 известные карты противника: карты, взятые из колоды сброса, но не сброшенные
4 неизвестные карты: карты из запаса или в руке противника (но не известные)

Пространство действий Gin Rummy

В Gin Rummy существует 110 действий.

Идентификатор действия Действие
0 score_player_0_action
1 score_player_1_action
2 draw_card_action
3 pick_up_discard_action
4 declare_dead_hand_action
5 gin_action
6 - 57 discard_action
58 - 109 knock_action

Вознаграждение в Gin Rummy

Вознаграждение рассчитывается по конечному состоянию игры. Обратите внимание, что вознаграждение отличается от вознаграждения в стандартной игре. Игрок, который выигрывает, получает 1 очко. Игрок, который стучит, получает 0,2 очка. Проигрывающий игрок наказывается отрицательным значением его счёта мёртвых карт, разделённым на 100.

Если рука объявлена мёртвой, оба игрока наказываются отрицательным значением их счёта мёртвых карт, разделённым на 100.

Настройки

Можно установить следующие параметры.

Параметр Значение по умолчанию
dealer_for_round DealerForRound.Random
stockpile_dead_card_count 2
going_out_deadwood_count 10
max_drawn_card_count 52
max_move_count 200
is_allowed_knock True
is_allowed_gin True
is_allowed_pick_up_discard True
is_allowed_to_discard_picked_up_card False
is_always_knock False
is_south_never_knocks False

Обратите внимание: max_move_count предотвращает неограниченное количество ходов в игре.

Варианты

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

Бридж

Бридж — популярная карточная игра для четырёх человек с использованием обычной колоды из 52 карт (туз считается старшей картой). Игроки Север и Юг являются партнёрами против партнёрства игроков Восток и Запад. Дилер раздаёт по 13 карт всем четырём игрокам. Происходит раунд торгов, чтобы определить контракт на количество взяток, которое должен выиграть декларант с указанным козырем (или без козыря). После завершения торгов разыгрываются 13 взяток, чтобы посмотреть, выполнен ли контракт. Во время розыгрыша взятки манекен (партнёр декларанта) показывает свою руку всем. Декларант играет картами из руки манекена.

Пожалуйста, обратитесь к деталям на Википедии.

Я предпочитаю вариант Чикаго, а не Резиновый Бридж. Пожалуйста, обратитесь к деталям на сайте Pagat.

Представление состояния Бриджа

Представление состояния Бриджа кодируется следующим образом:

Ключ Размер Описание
hands_rep

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/daochenzha-rlcard.git
git@api.gitlife.ru:oschina-mirror/daochenzha-rlcard.git
oschina-mirror
daochenzha-rlcard
daochenzha-rlcard
master