В этом разделе опишем упрощенную версию покера Texas Hold'em Heads Up, лежащую в основе MD5 покера. Далее по тексту эту версию будем называть НАШ покер. Описание будет использовать карты, которые в следующих разделах заменим на функцию MD5. |
Общая схема игры
Торговля
Старшинство последовательностей символов
Общая схема игры
В НАШ покер играют двое. В покерных терминах это назывется Heads Up. Для игры используется шестнадцатеричны карты. Здесь и дальше шестнадцатеричные карты это карты без мастей со значениями 0,1,...,9,a,b,c,d,e,f по 10 карт каждого значения. Хотя вполне можно пользоваться и несколькими колодами обычных карт.
До начала игры игроки договариваются о сумме ставки и сумме стэка. Стэк это сумма денег для участия в игре, в нашем случае кратная ставке. Стэк во время игры не пополняется.
Игроки выкладывают на стол свои стэки, вносят в банк по ставке и начинают играть.
Карты тасуются, на стол выкладывается пять открытых карт ( общие карты - common cards ), а каждый игрок получает две закрытые карты ( hole cards ). Таким образом каждый игрок получает семь карт - пять общих и две закрытые.
В НАШЕМ покере ( также как и в покере Техас Холдем ) существует четкое, хотя немного громоздкое определение старшинства набора карт, которое приводим ниже.
Каждый игрок, про себя, оценивает старшинство своей семерки после чего начинается так называемая торговля.
По сути торговля сводится к поочередному увеличению суммы банка ставками из стэка. Причем каждый участник должен увеличивать банк на сумму, не меньшую предыдущего увеличения соперником.
Торговля заканчивается:
- либо по взаимному согласию;
- либо по исчерпанию денег выделенных игроком для игры ( стэка );
- либо отказом одного из игроков увеличивать банк.
В последнем случае отказавшийся игрок проигрывает, выигравший забирает банк.
Торговля в НАШЕМ покере детально описана ниже,
По окончанию торговли по согласию или по исчерпанию стека игроки вскрывают свои две карты . Выигрывает тот, чья семерка карт ( 5 общих + 2 hole ) старше. Выигравший забирает банк.
Вышеописанный покер в покерных терминах наверное можно определить как: Texas Hold'em Heads-Up c только одной ( третьей ) улицей торговли ( ривером ) и только blind-ставками.
Торговля
Торговля сводится к поочередному и равному для каждого игрока увеличению банка, которое заканчивается либо по взаимному согласию ( оба игрока сделали CHECK ) либо по исчерпанию денег выделенных игроком для игры ( стека - при этом стек заканчивается одновременно ) либо отказом одного из игроков увеличивать банк после увеличения банка другим игроком.( fold ). В последнем случае отказавшийся игрок проигрывает, выигравший забирает банк. По окончанию торговли по согласию или по исчерпанию стека игроки игроки переходят к сравнению символьных семерок. Это вкратце, теперь подробнее
Торговля реализуется следующими операциями (ходами): CHECK,ВЕТ, CALL, RAISE, ALLIN или FOLD которые игроки совершают по очереди.
CHECK - игрок не увеличивает банк - если не должен. А не должен когда банк пополнен в равной мере ... Если после этого и второй игрок нажмет CHECK торговля прекращается по согласию. Второй игрок после этой операции может выполнить любую из операций, кроме FOLD, выполнение которой после CHECK не имеет смысла - потому и запрещено.
BET - игрок увеличивает банк на величину ставки, второй игрок после этой операции может выполнить только - CALL, RAISE, ALLIN или FOLD...
ALLIN - вносит весь стэк в банк. Второй игрок в этой ситуации может выполнить только ту же ALLIN или FOLD
CALL - выравнивание процесса увеличения банка, или "уравнительный" ответ игрока на увеличение банка предыдущим игроком . Увеличивает банк на сумму ставки (bet). Эта операция выполняется только после операций BET или RAISE . После этой операции сумма в банке становится четной 2*n*bet, а стэки равны. Второй игрок после этой операции может выполнить CHECK, BET или ALLIN.
RAISE - ответ игрока на увеличение банка предыдущим игроком. Однако не уравнительный . Увеличивает банк на две ставки ( 2*bet) и соответственно на туже сумму уменьшает стэк.. Выполняется после операций BET или RAISE при условии, что в стеке есть соответствующая сумма.
FOLD - игрок отказывается пополнять банк ( хотя должен ) , т.е. объявляет себя проигравшим
Старшинство семерок карт
В НАШЕМ покере ( как и в Техас Холдеме) старшинство семерок карт определяется через старшинство пятерок карт. Вначале определяется старшинство пятерок карт, а затем старшинство семерки карт по определению равно старшинству максимально старшей пятерки, содержащейся в семерке.
В НАШЕМ покере ( как и в Техас Холдеме) старшинство семерок карт определяется через старшинство пятерок карт. Вначале определяется старшинство пятерок карт, а затем старшинство семерки карт по определению равно старшинству максимально старшей пятерки, содержащейся в семерке.
Дальше определим старшинство пятерек карт. Для этого прежде всего определим старшинство карт определяется их значением . Масти в НАШЕМ покере не учитываются. Заметим, что это определение как в Техас Холдеме, только с учетом отсутствия мастей.
Ниже перечислены свойства ( комбинации ) пятерок символов, определяющие их старшинство в порядке убывания. Т.е. каждая комбинация старше (сильнее) следующих за ней по списку. Старшинство будет обзначаться символами > , <
.
Каждая такая комбинация ( или свойство ) имеет название и символьное обозначение.
Определим старшинство символов : 0 < 1 < ... < 9 < a < b
Покер (5).Пятерка содержит комбинацию покер если состоит из пяти одинаковых символов. Пятерка с таким свойством ( комбинацией ) старше любой пятерки символов, не облаюдающей таким свойством. Символьное обозначение покера в этом проекте - 5
Примеры: fffff, 00000, 11111, ...
Из двух пятерок содержащих покер по определению сильнее комбинация со старшим символом.
Пример. Пятерка fffff старше пятерки 99999. Обозначается fffff > 99999.
Каре (4).Пятерка символов содержит четыре одинаковых символа. Символьное обозначение - 4
Примеры: 44d44, 00f00, 11101
Из двух пятерок, содержащих каре, старше по определению пятерка со старшим символом,образующим каре, а если этот символ одинков то старше пятерка со старшим символом не входящим в каре.
Примеры. 44d44 > 0000f, 11101 < 15111
Фул-хаус (32)Пятерка символов состоит из 3 одинаковых символов и 2 одинаковых символов. Обозначение - 32 . Из двух пятерок содержащих фул-хаус старше та у которой старший символ образующий тройку. Если этот символ равен , то старшинство определяется символом образующим двойку
Примеры. 51515 > 44455, 555ff > 52525
Стрейт (3+) Пятерка символов предтставляет собой неупорядоченную последовательно возрастающую на 1 последовательность. Во как завернул :) Без примеров не обойтись: 34215, aebcd, 78659 и т.д. и т.п. Обозначается 3+
Из двух стрейт-пятерок старше та у которой старше самый старшый символ последовательности
Примеры. 12345 > 43210, fbcde > 87659
Сет (3)Пятерка содержит 3 одинаковых символа. - 3
Две пары(22)Пятерка содержит 2 пары одинаковых символов . Обозначается 22.
Примеры:
Пара(2)Пятерка содержит два одинаковых символа. Обозначается 2.
Ничего(0)Пятерка не содержит ни одну из вышеперечисленных комбинций.
Теперь рассмотрим примеры сташинства семерок.
Пример. Выясним какая из семерок 95f9ce4 , 95f9c4a старше .
Сначала найдем самую старшу пятерку из всех содержащихся в семерке 95f9ce4. Таковой будет 99fec.
Теперь найдем самую старшу пятерку из всех содержащихся в семерке 995f9c4a. Таковой будет 99fca.
А теперь сравним эти две пятерки
99fca < 99fec
Вторая пятерка старше, поэтому старше вторая семрка
95f9ce4 < 95f9c4a
Старшинство семерок определяет сервер. Но чтобы было видно этот процесс определения, сервер каждой семерке s1s2s3s4s5s6s7 ставит в соответсвие три элемента
kk, c1c2c3c4c5, s1s2s3s4s5s6s7
где c1c2c3c4c5 - самая старша пятерка из всех пятерок, содержащихся в s1s2s3s4s5s6s7,
kk - комбинация, содержащаяся в c1c2c3c4c5.
2,99fca,95f9c4a< 2,99fec,95f9ce4