Desarrolla un lenguaje específico de dominio (DSL) sencillo para tirar dados. Los jugadores de juegos como Dungeons & Dragons están familiarizados con este tipo de DSL. Un ejemplo es la siguiente expresión: 2 D20 + 1 D6, que significa que debemos tirar dos dados de 20 caras y un dado de 6 caras.
La expresión 2 d20 + 3 d10 se puede implementar usando la sintaxis de Pharo. + es un método como cualquier otro y se puede implementar en clases que no sean de números. Métodos como d20 se pueden implementar en la clase Integer existente con extensiones de clase, un método en otro paquete distinto de aquel en el que se encuentra la clase.
Este ejercicio procede del libro: Learning Object-Oriented Programming, Design and TDD with Pharo, disponible en http://books.pharo.org. Capítulo 12: Crafting a simple embedded DSL with Pharo.
Regístrate en Exercism para aprender y dominar Pharo con 50 ejercicios y mentoría humana real, todo gratis.