최근에 즐겨하는 게임이 있다. 이름은 '킹덤컴: 딜리버런스(Kingdom Come: Deliverance)'로, 2018년 체코의 게임사 '워호스 스튜디오(Warhorse Studios)'에서 개발한 게임이다. 스팀에서 최대 66%까지 할인을 진행한 기록이 있다.
이 게임은 1403년의 보헤미아 왕국, 신성로마 제국 등의 실제 사실을 배경으로 하는데, 주인공 헨리는 게임을 진행하면서 저장을 하거나, 퀘스트를 받기 위해 반드시 들려야 하는 여관(선술집)에서 주사위 게임을 하고 있는 사람들을 만날 수 있다.
검색해보니 이 주사위 게임의 이름은 'Dice 10000'이라고 한다.
(https://en.wikipedia.org/wiki/Dice_10000)
실제 그 시대에 즐겼던 게임인가에 대해서는 모르겠지만... 친구와 파이썬 공부를 위해서 직접 만들어보기로 했다.
1. 룰 찾기
위의 위키피디아 페이지에서도 룰을 확인할 수 있었는데, 게임에서 적용되는 룰을 한글로 설명해놓은 이미지를 찾아서 이를 참고하기로 했다.
2. 기본 프레임 만들기
기본적으로 주사위 게임을 만들기 위해서는 random 모듈이 필요할 것이다. 그리고 게임에서는 주사위의 종류가 다양하다는 점도 구현하고 싶었다. 룰 적용은 나중에 하기로 하고 기본적으로 주사위의 종류를 입력하고, 주사위를 던져 주사위 눈을 얻기까지만 만들어보았다.
import random
# 주사위 확률 정의
def dice_throw(name):
if name == "basic": # 기본 주사위: 1~6까지 동일한 확률로 반환
spot = random.randint(1, 6)
elif name == "lucky": # 행운의 주사위: 1과 5만 반환
possible = [1, 5]
spot = random.choice(possible)
return spot
# 주사위 클래스 정의
class Dice:
def __init__(self, name):
self.name = name
def get_spot(self):
spot = dice_throw(self.name)
self.spot = spot
def show_detail(self):
print(self.name, self.spot)
# 주사위 6개 종류 입력
D1 = Dice("basic")
D2 = Dice("basic")
D3 = Dice("lucky")
D4 = Dice("lucky")
D5 = Dice("basic")
D6 = Dice("basic")
# 주사위 6개 세팅
dices = []
dices.append(D1)
dices.append(D2)
dices.append(D3)
dices.append(D4)
dices.append(D5)
dices.append(D6)
# 주사위 던지기
running = True
while running:
for Dice in dices:
Dice.get_spot()
Dice.show_detail()
break
다음 과제로는 던져서 나온 주사위 눈에서 특정한 주사위만 선택하고, 룰을 적용하여 점수를 얻을 수 있도록 만들어보겠다.
'파이썬' 카테고리의 다른 글
파이썬으로 주사위 게임(Dice 10000, Farkle) 만들기 (2) (0) | 2021.03.23 |
---|---|
파이썬으로 총합이 k가 되는 n개의 무작위 숫자 구하기 (0) | 2021.02.28 |
파이썬 혼자 배우기 시작 (0) | 2019.11.25 |
댓글