Développe un langage dédié simple (DSL) pour lancer des dés. Les joueurs de jeux comme Dungeons & Dragons connaissent bien ce genre de DSL. En voici un exemple : 2 D20 + 1 D6, qui signifie qu'il faut lancer deux dés à 20 faces et un dé à 6 faces.
L'expression 2 d20 + 3 d10 peut s'implémenter avec la syntaxe de Pharo. + est une méthode comme une autre, que l'on peut implémenter sur d'autres classes que celle des nombres. Des méthodes comme d20 peuvent quant à elles être implémentées sur la classe Integer existante grâce aux extensions de classe, c'est-à-dire une méthode définie dans un autre paquet que celui où se trouve la classe.
Cet exercice est tiré du livre Learning Object-Oriented Programming, Design and TDD with Pharo, disponible à l'adresse http://books.pharo.org. Chapitre 12 : Crafting a simple embedded DSL with Pharo.
Inscris-toi sur Exercism pour apprendre et maîtriser Pharo avec 50 exercices, et un vrai mentorat humain, le tout gratuitement.