주사위

주사위

쉬움

지침

주사위를 굴리는 간단한 도메인 특화 언어(DSL)를 만들어 봐요. Dungeons & Dragons 같은 게임을 하는 사람이라면 이런 DSL에 익숙할 거예요. 예를 들어 2 D20 + 1 D6 같은 표현이 있는데, 이는 20면체 주사위 두 개와 6면체 주사위 한 개를 굴리라는 뜻이에요.

2 d20 + 3 d10 같은 표현은 Pharo 문법으로 구현할 수 있어요. + 역시 다른 메서드와 마찬가지로, 숫자가 아닌 다른 클래스에도 구현할 수 있어요. d20 같은 메서드는 클래스 확장을 이용해 기존 Integer 클래스에 구현할 수 있어요. 클래스 확장은 클래스가 속한 패키지가 아닌 다른 패키지에 있는 메서드를 말해요.

참고

이 연습 문제는 Learning Object-Oriented Programming, Design and TDD with Pharo 책에서 가져왔어요. 이 책은 http://books.pharo.org에서 볼 수 있고, 12장 "Crafting a simple embedded DSL with Pharo"에서 다뤄요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Pharo Exercism

주사위 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Pharo 트랙을 연습 문제 50개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.