Skip to content
Small MUD for Russian speakers (That is very old Perl OOP code)
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
templates/labirint
web
.dockerignore
.gitignore
Dockerfile
Dockerrun.aws.json
README.rst
default
start.sh

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/* Это будет, вроде как и игра, и вроде как понимание, что в это время программа делает. Пусть дети чуток поиграют, посмотрят и после смогут уже сами написать это же на том языке программирования, которому вы их учите.

You can’t perform that action at this time.