- JAVA 8
- Spring-Boot 2.1.1
- Gradle
- Spring Data JPA
- Hibernate
- H2 DataBase(Temporary)
- Handlebars
- WebSocket(Sock.js)
- 사용자 관리
- 로그인
- 프로필 사진 등록
- IndianPoker Game
- 두 명의 Player가 동시에 게임을 실행
- 사용자의 승리 수가 DB에 등록된다.
- 사용자 랭킹 조회
### 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 `베팅`의 경우, 상대 `플레이어`가 해당 `턴`의 승자가 된다.