Hearth Stone Game Modeling

하스스톤 게임 모델링

Introduction

  • 블리자드의 하스스톤 게임을 모델링한것입니다.
  • 제가 생각하는 객체와 각 객체의 속성, 메서드만 대략적으로 구현했기때문에 게임은 실행되지 않습니다.
  • 실제로 구현이 어려울것 같은 로직은 주석에 동작방식을 적는 것으로 대신하였습니다.

클래스 UML

HearthStoneModeling

주요 객체의 속성과 역활

  1. 카드
  • 카드는 영웅, 하수인, 주문, 무기 총 4가지 종류이다.
  • 특정 카드는 위 4가지 종류의 클래스중 하나를 상속받아 구현한뒤 객체를 반환한다.
  • CombatableCard를 상속받는 카드는 전투가 가능한 카드이다.
  • 무기 카드는 영웅에게 장착시켜 사용한다.
  • 덱은 하나의 영웅과 그 영웅의 직업의 종류와 같은 카드뭉치 30장을 가진다.
  • 카드뭉치 30장중 하나의 랜덤한 카드를 반환한다.
  1. 플레이어
  • 플레이어는 하나의 덱을 갖는다.
  • 덱에서 뽑은 카드를 LinkedList인 cardsOnHand가 가지고있는다.
  • 하수인 카드를 놓을 수 있는 battleField 속성을 같는다.
  • 덱에서 하나의 카드를 뽑아 보관한다.
  • 카드를 배틀필드에 놓음으로써 카드를 발동시킨다.
  • 전투 가능한 카드로 적을 공격한다.
  1. 매치
  • 매치는 두명의 플레이어를 가진다.
  • 매치를 준비한다.(최대마나를 1, 마나 보유량을 1로 만듬)가
  • 각각의 차례가 돌아가도록 한다.
  • 죽은 영웅이 있으면 게임을 끝낸다.