본문 바로가기

Slay the spire2

게임 구현하기: ABC를 사용하여 카드의 추상 베이스 클래스 만들기 Slay the Spire게임을 구축하는데 가장 오래걸리고 힘든 일은, 게임 내의 상호작용 하는 요소 중 가장 많은 비중을 차지하고 가장 많은 종류가 있는 '카드'를 구현하는 것이다. 이 카드를 구현하는 방법은 여러가지가 있을 수 있는데, 내가 사용하고자 하는 방법은 다음과 같다. 카드 구현 방법 '카드'라는 공통 기능을 정의하는 추상 베이스 클래스를 만들기 위해 ABC 클래스를 사용한다. '카드'를 상속받는 더 작은 범위의 카드 클래스를 만든다.(마찬가지로 ABC를 사용할 것이다.) 예를 들어, 'AttackCard', 'SkillCard', 'PowerCard' 등이 있다. 각 카드의 데이터(이름, 등급, 타입, 에너지, 효과 등)를 JSON 파일 형태로 저장한다. 모든 카드의 효과를 코드에서 구현한.. 2023. 4. 15.
시작 전 훑어보기: 뭘 해야하나? 목표는 정했는데, 아직 아는 게 하나도 없다. 따라서, 오늘은 뭘 해야 하는지 좀 더 세밀하게 생각해 보자. 그리고 이런 걸 기가 막히게 도와주는 친구가 있다. 요약하면, 게임을 강화학습으로 학습하기 위해서는 게임 환경 구현, 상태 정의, 보상 함수 정의, 강화학습 알고리즘 선택, 데이터 수집, 학습과 평가 총 6가지가 존재한다. 그럼 우선적으로 게임 환경 구현 은 어떻게 해야 하는지 찾아보자. 두 가지 방법이 있는데, 게임 코드를 직접 구현하는 것과 게임 인터페이스를 사용하는 것 두 가지가 존재한다. 일단 게임자체를 구현하는 것도 문제지만, 가장 문제가 되는 것은 속도이다. 강화학습은 학습과정에서 수많은 시뮬레이션 과정이 동반되기 때문에, 게임진행속도가 빨라야 매우 유리하다. 관련 정보를 찾기 위해, .. 2023. 4. 1.