Small MUD for Russian speakers (That is very old Perl OOP code)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib Design issues Sep 24, 2018
templates/labirint Design issues Sep 24, 2018
web Design issues Sep 24, 2018
.dockerignore Unused files Sep 24, 2018
.gitignore Get rid of unused info Sep 28, 2018
Dockerfile Add volume Sep 27, 2018
Dockerrun.aws.json Dockerrun file for AWS Sep 28, 2018
README.rst Change link Sep 28, 2018
default Get rid of unused info Sep 28, 2018
start.sh Add volume Sep 27, 2018

README.rst

README for labirint_game

Small MUD for Russian speakers (That is very old Perl OOP code)

Mission

Миссия у данного кода исключительно образовательная. Она помогает детишкам понять, как устроены MUD-игры. Это однопользовательский вариант, но принципиально он ничем не отличается от игр с множеством игроков.

Меня спросили о правилах и описании игры, а их у меня не было. Была только игра, писанная мною более десяти лет назад. Но с точки зрения правил игры, проще показать детям этот код и саму игру, чем описывать многочисленные правила в каком-либо документе.

Сам контейнер с игрой вы можете развернуть у себя или на AWS, взяв его с докерхаба: 'wws22/labirint_game'

Контейнер неправильный, совершенно не соответствует идеологии Docker, но это был мой первый опыт и к тому же, стояла цель минимизировать как итоговый размер, так и зависимости. Учиться самому Docker на этом примере НЕ НАДО!!!

Итак, смотрим в <https://github.com/wws22/labirint_game/tree/master/lib/Labirint/Object/Cell>

Это всё наследники базового класса Cell, которые и определяют игровую логику. Вам имеет смысл читать только те фрагменты кода +/- 2-3 строчки верх/вниз, где есть текст на русском языке. Еще, этажом выше, есть Player.pm который является 'O:other' для экземпляров ячеек лабиринта. В коде попадается некий 'O:mananger'. Это ссылка на игровой мир, содержащий вообще все объекты. Однако для понимания логики и правил игры вам он не сильно нужен.

Всё специфическое и неинтересное тряхомудье связанное с подъемом энджина, организацией двух миров (мир реальных пользователей и мира в котором сейчас ходит конкретный игрок), расстановка клеток, дыр, стен, это всё есть в /web/cgi/labirint.cgi. Но я не думаю, что детям имеет смысл туда смотреть. Там кода много, а образовательного смысла мало. Думаю, что вы сами с детишками придумаете, как 25 клеток и стенки по полю рассовать.

Я думаю, что лучше всего просто войти в игруху, открыть карту и начать ходить по клеткам, одновременно читая их код в /lib/Labirint/Object/Cell/* Это будет, вроде как и игра, и вроде как понимание, что в это время программа делает. Пусть дети чуток поиграют, посмотрят и после смогут уже сами написать это же на том языке программирования, которому вы их учите.