Skip to content

Latest commit

 

History

History
123 lines (67 loc) · 2.75 KB

brief for minus0ne v1.0.0.md

File metadata and controls

123 lines (67 loc) · 2.75 KB

brief for m1nus0ne v1.0.1

class Room

Содержит:

  • Текущий матч
  • Очередь на игру

Обязан:

  • startMatch(): Начинать матч

  • При завершении матча возвращать его игроков в комнату

class Match

Я не шарю в этом вашем покере. Правильно ли я понимаю, что матч закончится тогда, когда все игроки побывают диллерами ? (с) Данил Стетхэм

Содержит:

  • Текущий раунд
  • Список игроков
  • Какой-либо указатель на диллера
  • Карты на "столе"
  • "Колоду "из которой всё раздаётся (см. static class Deck)

Обязан:

  • nextRound(): Устанавливать следующий раунд (см. class Round getNextRound() ), реализовывать логику подписки и отписки на события, прокидываемые Player'ами
  • endMatch(): Заканчивает матч, возвращает игроков в комнату (см. класс Room, может быть просто прокинуть событие о завершении матча?)

class Round

Базовый класс всех раундов

Содержит:

  • Текущий матч

Обязан:

  • getNextRound(): возращать следующий раунд
  • Обрабатывать событие OnPlayerChosed(Command c, int bet) (см. класс Player) ( название мб переделать)

Классы-наследники

  • Preflop
  • Flop
  • Turn
  • River

class Player

Содержит:

  • Личные данные (имя)
  • "Руку" - массив с картами
  • Событие OnPlayerChosed(Command c, int bet)

Пояснение: по крайней мере в C# при вызове события ему можно было передавать аргумент, который также передавался и обработчику событий, хз как в Питоне

Обязан:

  • chooseAction(Command c, int bet): вызывать событие OnPlayerChosed

enum Command

  • check
  • bet
  • raise
  • etc.

static class Deck

Содержит:

  • Карты колоды

Обязан:

  • giveCard(): возвращать случайную карту, которая удаляется из колоды
  • newDeck(): делать колоду снова полной

class Card

Содержит:

  • Suit
  • Value

enum Suit

  • Spades
  • Clubs
  • Diamonds
  • Hearts

enum Value

  • 2
  • ...
  • 9
  • J
  • Q
  • K
  • A