Git Product home page Git Product logo

labirint_game's Introduction

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

labirint_game's People

Contributors

wws22 avatar

Stargazers

Yuriy Filatov avatar Игорь avatar Serge avatar

Watchers

James Cloos avatar Yuriy Filatov avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.