Skip to content

Sehun-Kim/IndianPoker_Spring-Boot

Repository files navigation

IndianPoker Web

Environment

  • JAVA 8
  • Spring-Boot 2.1.1
  • Gradle
  • Spring Data JPA
  • Hibernate
  • H2 DataBase(Temporary)
  • Handlebars
  • WebSocket(Sock.js)

Requirement

  1. 사용자 관리
    • 로그인
    • 프로필 사진 등록
  2. IndianPoker Game
    • 두 명의 Player가 동시에 게임을 실행
    • 사용자의 승리 수가 DB에 등록된다.
  3. 사용자 랭킹 조회
GAME RULE
### IndianPoker
- 게임은 종료 조건이 있다.
  -  20`턴`이 지나면 게임은 종료된다.
  - 하나의 `플레이어` 라도 `칩`이 모두 소진되면 게임은 종료된다.
- 게임에 참여하는 `딜러`는 1명이다.
- 게임에 참여하는 `플레이어`는 2 이다.

### Player
- `플레이어`는 `팅`할  있다.
- `플레이어`는 ``딜러``에게 `칩`을   있다.
- `플레이어`는 `덱`(복수개의 `카드`)을 갖는다.
- `플레이어`는 `이름`을 갖는다.
- `플레이어`는 `칩`을 갖는다.
- `플레이어`의 `칩`  default 30
- `플레이어`는 자신의 `카드`를   없다.
- `플레이어`는 상대의 `카드`를   있다.

### Dealer
- `딜러`가 게임의 승패를 판단한다.
  - `딜러`가 `카드`의 크기를 비교한다.
- `딜러`가 게임의 승자에게 베팅된 `칩`을 분배한다.
  - `카드`의 숫자가 같을 경우, 해당 턴에 배팅된 `칩`을 `플레이어`에게 균등하게 분배한다.

### Winner
- 승자는 `카드`의 숫자가 높은 사람이다.
- 승자는 해당 턴에 배팅된 모든 `칩`을 얻는다.

### Card
- `카드`는 1~10 까지의 숫자로 구성되어 있다.

### Deck
- `덱`은 1~10까지의 `카드`  쌍으로 구성된다.

### Turn
- `턴`은 종료 조건이 있다.
  - 하나의 `플레이어`라도 `칩`이 모두 소진되면 `턴`은 종료된다.
  - 하나의 `턴`은  쪽이 Call or Die  나오면 종료된다.
- `턴`을 시작할 때,   `플레이어`의 `칩`을 1개씩 걸어야 한다.
- `턴`의  `베팅` 순서에는 Call   없다.

### Betting
- `베팅`은 Raise, Call, Die  종류가 있다.
  - Raise `베팅`의 경우, 상대 `플레이어`의 `칩`보다 많은 `칩`을   없다.
  - Call `베팅`의 경우, (상대 `플레이어`가  배팅한 `칩` - 내가 이전까지 배팅한 `칩`)  `베팅`해야한다.
  - Die `베팅`의 경우, 상대 `플레이어`가 해당 `턴`의 승자가 된다.

Domain Structure

Domain Structure