Skip to content

wws22/labirint_game

Repository files navigation

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

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages