Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dimensi/testgame

Игра из заданий Техносферы
https://github.com/dimensi/testgame

Last synced: 14 days ago
JSON representation

Игра из заданий Техносферы

Awesome Lists containing this project

README

        

Творческое задание - простая текстовая игра.
Играть в неё можно вводя команды в консоли.
Вводим команду - получаем ответ.
Такие игры делали когда компьютеры были большими, а интернета не было вовсе.
В следующих домашних заданиях мы будем увеличивать функционал игры и переводить её в интернет, делать многопользовательской.

Игровой мир обычно состоит из комнат, где может происходить какое-то действие.
Так же у нас есть игрок.
Как у игрока, так и у команты есть состояние.
initGame делает нового игрока и задаёт ему начальное состояние.
В данной версии можно обойтись глобальными переменными для игрока.

Команда парсится как
$команда $параметр1 $параметр2 $параметр3

В тестах представлены последовательности команд и получаемый ответ.
Задача - пройти все тесты и сделать правильно.
Под правильным понимается универсально, чтобы можно было без проблем что-то добавить или убрать.
Т.е. бесконечный набор захардкоженных if'ов не подойдёт для всего мира не подойдёт.
Услвоия есть толкьо внутри конкретной комнаты.
Надо думать в сторону объектов, вызова функций, структур, которые описывают состояние комнаты и игрока, функций которые описывают какой-то интерактив в комнате. Не забывайте что вы можете создать мапу из функций. Или можно реализовать триггер (действие, выполняемое при каком-то событии). Или у структуры поле может иметь тип "функция".

Тестовых кейсов много. Прочитайте их внимательно, там есть результаты работы всего что вам надо.
Задание сложное, не на 5 минут
Не стесняйтесь. Не забывайте, что у нас ест ьканал в телеграме - лучше спрашивать туда.
Однако преждем чем спрашивать - попробуйте что-то сделать и четко сформулируйте, что у вас не получается.