LINUX.ORG.RU

Stodin DSL. Тема 2. Четыре героя.

 , ,


0

2

Моему «коллеге» по созданию средств программировании на форуме задали задачку: создать тетрис, чтобы проверить возможности языка. Он отказался, а мне идея мне показалась интересной. Графика у меня пока не прикручена, поэтому я решил в качестве теста сделать консольную игрушку, которая только по духу близка к тетрису, лайнс, пасьянсу и т.д. За прототип я взял «Darkest Dungeon» и упростил до минимума.

Исходный код тут: https://github.com/kupriyanov-sn/StodinDSL/tree/master/examples/four_heroes_game

Также есть временная ссылка на архивы с бинариками и транслированным кодом C++: https://yadi.sk/d/0rjcBol5eJ_cBg

Если кому интересно, просьба потестировать на ошибки, возможно, дать какие-то советы по типам и умениям героев, балансу и т.д. Полное прохождение игры занимает минут 20, так что много времени это не займёт.


Это выглядит как какой-то диалект питона. Отсутствие скобок мне никогда не нравилось

SZT ★★★★★
()
if ourHeroes|selfIdx|.type HeroType^Troll
        ourHeroes|selfIdx|.health + 5
    if ourHeroes|selfIdx|.type HeroType^Ghost
        ourHeroes|selfIdx|.health + 3

Это какое-то очень неправильное использование рефлексии

Crocodoom ★★★★★
()
Ответ на: комментарий от Crocodoom

Один модуль библиотечный, другой - локальный. Чтобы не было конфликта имён.

Kogrom
() автор топика
Ответ на: комментарий от Crocodoom

Ad-hoc полиморфизм

В данном конкретном случае разные герои объединены в массиве ourHeroes. Если я для каждого героя сделаю свой тип, то объединить их надо будет через наследование. Утиной типизации нет, указателя на void нет.

Теоретически, можно извернуться и подстроить код под определённую пуристическую идеологию, увеличив его в два раза, но зачем?

Kogrom
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.