Giter VIP home page Giter VIP logo

lesson026's Introduction

Black Jack

Домашне завдання - игра Black Jack

Основне завдання:

Необходимо реализовать игру 21 или BlackJack (на выбор). Пример игры https://html5blackjack.net. Обязательным требованием является:

  1. Наличие класса Колода карт и вложенного статического класса Карта.
  2. Могут быть другие классы: игровой стол, игра, игрок, диллер, UI.

Дополнительное задание:

  1. Игра на виртуальные деньги. Игроку и диллеру выдается по 1000 денег в начале игры.
  2. Игрок может сделать ставку. Игра продолжается до "банкротства" игрока или диллера.

Домашне завдання - Створити колоду карт

Основне завдання:

  1. Створити колоду карт, яка може бути використанна для створення додатків карткових ігор (дурак, покер і т ін.)
  2. Створити перерахування Suite з можливими мастями карт (♠ ♣ ♥ ♦)
  3. Створити клас Card - карта в якій вкзати масть і значення (наприклад, туз хресті). Масть, це поле типу Suite.
  4. Створити клас Deck - колода карт, в якій потрібно зберігати масив карт.
  5. В конструкторі колоди ініціалізувати колоду на 36 карт.
  6. Додати метод shuffle(), який дозволяе перемішати карти.
  7. Додати метод sort(), який дозволяе відсортувати карти стандартим методом sort() классу Arrays.
  8. В класі Card реалізувати інтерфейс Comparable для порівняння карт.
  9. В класі Deck реалізувати інтерфейс Iterable для можливості перелічити карти в циклі foreach
  10. Створити клас DeckIterator який реалізує інтерфейс Iterator і дозволяе реалізувати логіку перебору карт.

Додадкове завдання:

  1. Додати констукртор з параметрами в клас Deck який приймає кількість карт (або 36, або 54) і відповідно свторює колоду заданої кількості карт.
  2. Також додати конструктор по замовчуванню який дозволяє стоврити колоду на 36 карт.

Дополнительные данные

Масть

  1. Трефы — clubs (♣) \u2663
  2. Бубны — diamonds (♦) \u2666
  3. Червы — hearts (♥) \u2665
  4. Пики — spades (♠) \u2660

Достоинства:

  1. Валет «В» - Jack «J»
  2. Дама «Д» - Queen «Q»
  3. Король «К» - King «K»
  4. Туз «Т» = Ace «A»
  5. Карты младше десятки именуются по численному обозначению (two, three, .. ten)
  6. Джокер - Joker «Jr» - black and white (черно-белый) и red (красный)

Сортировка по приоритету Сортировка под игру дурак или др.

  1. Пики-Червы-Бубны-Трефы
  2. 2, 3, 4, 5, 6, 7, 8, 9, 10, Валет, Дама, Король, Туз

Сортировка под игру black jack

  1. 2-10 - от 2 до 10 соответственно,
  2. туз — 1 или 11 (11 пока общая сумма не больше 21, далее 1)
  3. картинки (король, дама, валет) — 10.

Правила игры

  1. Если у игрока и дилера число очков на руках равное, то такая ситуация называется «ровно»: за рубежом это называется — пуш (англ. push). В такой ситуации все остаются при своих ставках, никто не выигрывает и не проигрывает.
  2. Игроки до раздачи карт делают ставки, кладя фишки на соответствующие поля игрового стола. После того, как первая карта сдана, игрокам запрещается делать ставки и прикасаться к своим фишкам.
  3. Дилер раздаёт карты (принято в этой игре из одной колоды) по две карты каждому игроку, себе раздаёт одну карту (в США принято раздавать дилеру две карты, одна из которых открыта, а другая — закрыта, то есть находится на столе рубашкой вверх).
  4. Если у игрока сразу после раздачи набралось 21 очко (то есть у игрока туз и десятиочковая карта), то такая ситуация и называется блек-джек. В таком случае игроку сразу выплачивается выигрыш 3 к 2 (то есть в 1,5 раза превышающий его ставку). Исключение составляют случаи, когда дилеру первой картой (открытой) попадается 10, картинка или туз. В этом случае существует вероятность, что у дилера также будет блек-джек, поэтому игроку с блек-джеком предлагается либо взять выигрыш 1 к 1 (только если первая карта дилера — туз), либо дождаться окончания конца игры (и в случае, если у дилера не блек-джек, получить выигрыш 3 к 2).
  5. Далее игрокам, у которых не блек-джек, предлагается на выбор либо взять ещё карту (в таком случае игрок должен сказать дилеру «карту» или «ещё», англ. hit me), либо остаться при тех картах (и той сумме очков), которые у него на руке (в этом случае игрок должен сказать дилеру «достаточно» или «хватит»).
  6. Как правило, если у игрока после взятия новой карты в сумме получается 21, дилер не спрашивает его больше и переходит к следующему игроку.
  7. Если у игрока после взятия новой карты сумма очков превысит 21, то такая ситуация называется «перебор».
  8. Если в наборе имеется туз, то при переборе его значение приравнивается к 1. Дилер произносит «много» и снимает ставку игрока в пользу казино.
  9. Если у дилера в первых двух картах набирается 21 очко (блек-джек), то все игроки (кроме тех, у кого тоже блек-джек), проигрывают. Те, у которых блек-джек, остаются при своих ставках, если они ранее не выбрали взять выигрыш 1 к 1 или если не застраховали свою комбинацию от блек-джека.
  10. В некоторых случаях, в зависимости от того, какие карты на руках у игрока, дилер может предложить ему дополнительные варианты (см. ниже). После того, как все игроки завершили брать карты, дилер говорит «себе» и раздаёт карты себе. Общее правило блек-джека состоит в том, что дилер обязан остановиться, как только наберёт 17 очков или выше, и обязан брать, пока не достигнет (даже если у всех не перебравших меньше очков). В различных казино может варьироваться правило, должен ли дилер останавливаться в ситуации, если у него туз и шестёрка (то есть 7 или 17 очков на руке). Обычно это правило написано на игровом столе.
  11. При окончательном подсчёте очков в конце раунда карты остальных игроков для вас значения не имеют, игра ведётся только против дилера, то есть сравниваются карты только игрока и дилера, карты и ставки параллельных игроков не учитываются.

Реализация

  1. Подготовка (Preparation) (все действия выполняются последовательно, совместно с созданием игры)
  • Создать игру
  • Создание колоды для black jack (приоритет) на 52 карты (Deck-addDeckBlackJack)
  • Сортировка по приоритету (Deck-SortRandom, Random выбор по возрастанию или убыванию)
  • Перемешиввание карт (Deck-shuffle)
  • Создание игрока (Player с полями name и кол-во денег bank)
  • Создание диллера (казино) (Diller с полями name и кол-во денег bank)
  • Создание игрового стола (GameTable с полями Player player, Diller diller, Deck deck, Deck.Card[] playerCards, Deck.Card[] dillerCards)
  1. Игра
  • Делать ставку (GameTable-addBid)
  • Сдача 2 карт
  1. Окончание игры
  • При отсутствии денег у игрока
  • При выходе игрока после окончания игры

rivate String name; // Например "Стол №1" private int bid; // Ставка

lesson026's People

Contributors

alexsemenyuk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.