Кубик

Кубик

Легка

Вказівки

Розробімо просту предметно-орієнтовану мову (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 вправ та справжнє наставництво від людей, і все це безкоштовно.