Skip to content

Latest commit

 

History

History
95 lines (83 loc) · 16.6 KB

FINAL_PROJECT_BLACK_JACK.md

File metadata and controls

95 lines (83 loc) · 16.6 KB

BlackJack

Основные правила игры

Участники

В игре учавствует игрок и диллер(крупье).

Цель игры

Цель игры в блэкджек заключается в том, чтобы набрать двадцать одно очко или же количество очков, максимально приближенное к этой сумме, но не больше ее. Если игрок набирает больше двадцати одного очка, он сразу же проигрывает. В остальных случаях ценность его карт сравнивается с ценностью карт дилера и определяется победитель. Карта достоинством десять очков и туз, полученные с раздачи, называются блэкджеком. Это единственная комбинация карт в игре, имеющая название и она превосходит по силе любые другие карты.

Достоинство карт

Карты от двойки до десятки имеют достоинство, совпадающее с их номиналом. Достоинство валета, дамы и короля равно десяти очкам. Туз может давать одно или одиннадцать очков. Этот выбор делается в пользу игрока.

Например, если на боксе туз и четверка, объявляется, что у игрока пять или пятнадцать очков. Если ему придет шестерка, он получит двадцать одно очко (в некоторых казино в такой ситуации игра автоматически переходит на следующий бокс, а в некоторых объявляется одиннадцать или двадцать одно и игрок сам делает выбор, брать ли еще карту). Однако, если он получит семерку, будет считаться, что у него двенадцать очков, но не двадцать два.

Ход игры

Дилер тщательно перемешивает все колоды, отделяет часть карт (от пятой до третьей) с помощью специальной пластиковой карты и вставляет их все в «башмак». В процессе игры он достает из него карты по одной и раздает их игрокам и себе. Вышедшие из игры карты помещаются в специальный отбойник и находятся там, пока из «башмака» не выйдет пластиковая карта. Раздача, в течение которой это произошло, объявляется последней и по ее окончанию все карты снова перемешиваются. Подготовив карты к игре, дилер предлагает игрокам сделать ставки, после чего прекращает их прием и начинает раздавать карты. В базовом варианте игры он раздает всем игрокам и себе по две карты Одну из своих карт он открывает. В нашей стране получил распространение вариант правил, по которым дилер раздает себе лишь одну открытую карту, а остальные набирает себе после всех игроков. Если на каком-то боксе образуется блэкджек, а открытая карта дилера исключает возможность такой же комбинации у него (то есть, это карта от двойки до девятки), он сразу оплачивает блэкджек и забирает карты в отбойник. Если у дилера открыт туз или карта достоинством в десять очков, блэкджек не оплачивается до тех пор, пока не придет время сравнивать комбинации. Если у крупье открыт туз, по правилам некоторых казино он предлагает игроку, у которого блэкджек, так называемые «равные деньги». Это означает, что он сразу оплачивает блэкджек 1:1 и забирает карты. Игроки, оценивая силу своих карт и принимая во внимание достоинство открытой карты крупье, принимают решение, брать ли еще карту или останавливаться на той сумме очков, которая уже есть на боксе. На бокс можно набирать любое количество карт при условии, что сумма очков не превышает двадцати одного. Набор карт происходит строго по очереди. Первый бокс находится по левую руку от дилера. После того, как на всех боксах было принято окончательное решение, дилер вскрывает свою вторую карту, при необходимости добирает карты и сравнивает полученную комбинацию с картами игроков. Дилер берет себе карты строго в соответствии с правилами: он обязан брать еще карту, если у него шестнадцать или меньше очков и останавливаться, если у него семнадцать и больше очков. Игрок не имеет права касаться своих карт, все операции с ними производит дилер. Выигравшие боксы оплачиваются 1:1, блэкджек оплачивается 3:2 (в некоторых казино блэкджек из карт одной масти оплачивается 2:1).

Дополнительные правила

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

  • Сплит (Split) – имея на боксе две карты одного номинала (в некоторых казино даже одного достоинства, то есть, дама и король), игрок может разделить их на два бокса, поставив еще одну ставку того же размера. После этого будет производиться дополнительный набор карт на каждый из новых боксов. Если на один из новых боксов придет карта того же номинала, сплит можно сделать еще раз. Количество возможных сплитов с одного бокса варьируется, но обычно не превышает трех. При сплите тузов, как правило, раздается лишь одна карта, после чего игра переходит на следующий бокс. Если вновь приходит туз, можно сделать еще сплит. Туз и любая карта в десять очков полученные в результате сплита, не считаются блэкджеком и рассматриваются как двадцать одно очко (это означает, что они проиграют, если блэкджек будет у крупье).

  • Дабл (Double) – получив первые две карты, игрок имеет право сделать дабл. Для этого он должен удвоить свою первоначальную ставку. После этого ему раздается еще одна карта на этот бокс и дилер переходит к следующему игроку или открывает свои карты.

  • Трипл (Triple) – это правило действует далеко не во всех казино и позволяет игроку сделать после дабла на боксе еще одну ставку, равную первоначальной и получить дополнительную карту.

  • Суррендер (Surrender) – получив первые две карты, игрок имеет право отказаться от продолжения игры на этом боксе, отдав половину первоначальной ставки. Следует отметить, что это правило почти во всех казино не действует, если у дилера открыт туз. Более того, оно нередко отменяется, если у дилера открыта карта достоинством в десять очков.

  • Страховка (Insurance) – если у дилера открыт туз, он предлагает игрокам застраховаться от блэкджека. Размер страховки равен половине первоначальной ставки и она оплачивается в размере 2:1, если у дилера будет блэкджек.

Технические требования к проекту

  1. Игра должна быть реализованна в виде web-приложения.
  2. Прококол взаимодействия с сервером - REST.
  3. Приложение должно обладать персистентным хранилищем данных.
  4. Хостится приложение должно на любом веб-сервере (tomcat, например, но можно использовать и embedded решения).
  5. Весь исходный код проекта должен размещаться на Github'e и быть доступным.
  6. Исходный код приложения должен соответствоваться конвенциям, которые вы утвердите внутри команды.

Требования к игре

  1. Как пользователь, я хочу иметь возможность регистрироваться в игре.
    • При регистрации я хочу иметь возможность указать свой ник, логин и пароль.
    • Ник, логин и пароль должны состоять как минимум из 4-х латинских букв в любом регистре или цифр(спец символы не разрешенны).
    • Регистрация должна завершится успешно, если нет зарегистрированных пользователей с таким логином.
    • По завершении регистрации я хочу получить начальное количество игровой валюты на свой счет.
      • Количество - 10 000 монет.
  2. Как пользователь, я хочу иметь возможноть логинится в игру.
    • Если я был предварительно зарегистрирован, то я хочу иметь возможноть заходить в игру под своим логином и паролем.
    • Если я не был зарегистрирован, то я не должен иметь возможность входить в игру.
    • После успешного логина я должен получить информацию о доступном игровом столе.
      • Я хочу знать, какая минимальная и максимальная ставка за столом.
      • В игре должен быть 1 стол на пользователя.
  3. Как игрок, я хочу иметь возможность сделать ставку за столом и получить 2 карты.
    • Ставка:
      • Я должен указать ставку, которая должна быть в разрешенным пределом (min => ставка <= max).
      • В игре доступен только 1 бакет, тоесть 1 ставка на стол.
      • С моего баланса должны быть вычтены монеты в размере сделанной мною ставки.
    • Карты:
      • Я должен получить 2 случайные карты из 4-х полных колод, которые должны быть перемешанны перед каждой ставкой.
      • Я хочуть выиграть в размере 3/2 от моей ставки, если после получения карт у меня на руках будет BlackJack (сумма == 21).
      • Диллер должен получить 2 случайные карты из тех же 4-х колод (уже перемешанных и с вычетом уже взятых 2-х карт).
      • Как игрок, я должен получить информацию о картах которые получил я.
      • Как игрок, я должен получить информацию о первой карте, которую получил диллер.
  4. Как игрок, я хочу иметь возможность получить еще одну карту(сделать Hit), если сумма моих карт < 21.
    • Карта должна быть полученна случайно из 4-х уже перемешанных колод(с вычетом остальных взятых карт).
    • Я хочуть выиграть в размере 3/2 от моей ставки, если после получения еще 1-й карты у меня на руках будет BlackJack (сумма == 21).
    • Я програю свою ставку, если после взятия карты я переберу с суммой карт в моей руке (сумма > 21).
  5. Как игрок, я хочу иметь возможность остановится на текущей руке(сделать Stand).
    • Если диллер имеет в руке BlackJack, то игрок должен потерять свою ставку.
    • Если диллер имеет в руке сумму очков < 17, то он должен брать карты, пока сумма очков в руке не станет >= 17.
      • Карты берутся таким же образом. Случайно из 4-х перемешанных колод (и с вычетом уже взятых).
      • Если сумма очков у диллера будет больше, чем у игрока, то игрок проигрывает свою ставку.
      • Если сумма очков у диллера будет меньше, чем у игрока, то игрок выигрывает 1/1.
      • Если сумма очков одинакова, то игроку возвращается его ставка.
  6. Все дополнительные правила (сплит, дабл, трипл, сурендер, страховка) работать не должны.
  7. Как пользователь, я хочу иметь возможность играть с нескольких аккаунтов одновременно.
    • Я должен иметь возможность зарегистрировать несколько аккаунтов и играть ими параллельно.