- 간소화된 하스스톤 게임 구현
- OOP 설계 공부를 위한 연습 단계
./gradlew clean build
./gradlew run
- 도메인에 필요한 객체 정리
- 필요한 메시지 추가
- 메시지를 수신할 객체 선택
- 더 이상 필요한 메시지가 없을 때까지 2~3 과정 반복
- 객체들이 수신하는 메시지를 바탕으로 객체들의 인터페이스 구성
- 객체들의 메소드 구현
플레이어
2명이 생명력 15의영웅
을 가지고 시작한다.- 초기
카드덱
의카드
개수는 10개로 시작한다. - 첫 턴에서 각
플레이어
는카드덱
에서 선공 시 3장, 후공 시 4장의카드
를 받는다. - 각
플레이어
는 자신의 턴에카드
를 1장씩 받는다. 플레이어
가 받은카드
중 하나를게임보드
에 등록하면카드
는보드
에 놓여진다.플레이어
가 받은카드
중 하나로영웅
을 공격하면영웅
은 피해를 입는다.플레이어
의영웅
으로 상대영웅
을 공격하면영웅
은 피해를 입고, 공격한플레이어
의영웅
도 상대의 공격력 만큼 피해를 입는다.영웅
의 생명력이 0이 되면영웅
은 파괴되고 게임은 끝난다.
-
기존 하스스톤 게임 규칙에서 스펙 다운
기존 하스스톤 게임 규칙 확인하기
1. 플레이어 2명의 영웅이 각 30의 생명력을 가지고 시작한다. 2. 상대 영웅의 생명력이 0 이하로 감소되면 승리한다. 3. 각 플레이어는 카드덱을 가진다. 4. 덱의 카드 개수는 30장으로 고정된다. 5. 덱에 같은 카드는 2장까지 넣을 수 있다. 6. 일반 카드와 황금 카드는 같은 카드로 취급되므로 일반 2장, 황금 2장을 넣을 수 없다. 7. 게임 시작 후 선후공은 무작위로 결정된다. 8. 게임 시작 후 선공은 카드 3장, 후공은 카드 4장을 받는다. 9. 후공은 추가적으로 '동전 한 닢' 카드를 받는다. 1. 동전 한 닢 카드는 해당 턴에서만 일시적으로 마나를 1 상승시킨다. 10. 패에 있는 카드가 10장이면 이후로 뽑는 카드는 파괴된다. 11. 각 플레이어는 마나를 가진다. 12. 각 플레이어는 턴이 끝나면 마나가 1 늘어난다. 13. 마나의 최대 수는 10이다. 14. 덱에 있는 카드를 사용할 때 마나가 소모된다. 15. 덱에 있는 카드를 사용할 때 카드별로 소모되는 마나는 차이가 있다. 16. 덱에 있는 카드는 카드의 성격에 따라 직접 영웅을 공격할 수도, 게임보드에 등록할 수도 있다.
-
추후 추가하고 싶은 기능
- 플레이어별 카드덱 가지기
- 게임보드에 등록된 카드로 공격
- 게임보드에 등록된 카드에 대한 공격
- 피해 받은 카드는 게임보드에서 소멸
- ...etc
CardDeck
Card
Player
Board
Hero
- 카드 나눔 시
- 카드를 나눠줘라
- 카드를 받아라
- 카드 등록 시
- 카드를 등록해라
- 카드를 꺼내라
- 공격 시
- 공격해라
- 카드를 꺼내라
- 피해를 입어라