/// /// Исходный код текстовой онлайн игры "Пример движения по миру с помощью клавиш" скачан с сайта https://apero.ru/ /// Пройти онлайн или скачать последнюю версию этой игры можно по адресу: https://apero.ru/Текстовые-игры/Пример-движения-по-миру-с-помощью-клавиш /// Авторы: Мастер Про /// Версия: от 2024-06-09 16:02:36 /// \запуск Пример движения по миру с помощью клавиш Двигаетесь по миру с помощью разных клавиш: "стрелочек или WSAD", взаимодействуйте с помощью "enter или Л". Автор: Мастер Про //комментирую код, готово будет позже \(старт, Начать игру "Пример движения по миру с помощью клавиш") \(гпоз1=4) \(гпоз2=4) \(мирс=1) //начальная позиция игрока \СТОП \старт История начинается в деревне Нотербург. Пройдите по карте и найдите клад! Клад на юго-востоке. \(цвeт=("#11ff11";"#aacc11";"#ff1111";"#00ffff")) //коды цветов в которые будут окрашены клетки мира, # — начальный символ, служит знаком того, что клетка будет окрашена в какой-либо цвет, 11 — кол-во красного, ff — кол-во зеленого, 11 — кол-во синего. Более подробно система RGB. \(мир1.цветс1=(1;1;1;1;1;1;1;1;1;1)) \(мир1.цветс2=(1;1;1;1;1;1;1;1;1;1)) \(мир1.цветс3=(1;1;1;1;1;1;1;1;1;1)) \(мир1.цветс4=(1;1;1;2;1;1;1;1;1;1)) \(мир1.цветс5=(1;1;1;1;1;1;1;1;1;1)) \(мир1.цветс6=(1;1;1;1;1;4;4;4;4;4)) \(мир1.цветс7=(1;1;1;1;1;4;2;4;4;4)) \(мир1.цветс8=(1;1;1;1;1;4;1;1;1;1)) \(мир1.цветс9=(1;1;1;1;1;4;1;1;1;1)) \(мир1.цветс10=(1;1;1;1;1;4;1;1;1;1)) //цвета, в которые будут окрашены клетки, соответственно 1 — #11ff11, перечисление идет сначала по строкам, далее по столбцам, то есть \(мир1.цветс9.номер6=2) означает, что клетка в 1 мире в 9 строке и 6 столбце будет окрашена во 2 цвет \(мир1.движ6=(0;0;0;0;0;1;1;1;1;1)) \(мир1.движ7=(0;0;0;0;0;1;0;1;1;1)) \(мир1.движ8.номер6=1) \(мир1.движ9.номер6=1) \(мир1.движ10.номер6=1) // хранят информацию о возможности движения в клетку \(сообщил1.поз4=(0;0;0;1)) \(сообщил1.поз9.номер5=1) \(сообщил1.поз7.номер7=1) // Если обьявлено, то когда герой будет находиться в соответствующей клетке, выводит сообщение \(сообщили1.поз4=(0;0;0;"Вы находитесь в деревне Нотербург.")) \(сообщили1.поз9.номер5="Вы видите сломанный мост, его можно восстановить.[br]\(мост1, Восстановить мост)") \(сообщили1.поз7.номер7="Здесь закопан клад[br]\(клад1, Выкопать клад)") // само сообщение \(ресур=("Герой";"Деревня[br]Нотербург";"Клад";"Сломанный мост";"Мост")) // названия которые могут выводится в клетке \(мир1.рес4.номер4=2) \(мир1.рес7.номер7=3) \(мир1.рес9.номер6=4) // закрепленное название клеток \(АПЕРО.нажатие.скрыть=1) // скрывает надпись о ожидании ввода с клавиатуры \(карта, Далее) \СТОП \карта \(АПЕРО.нажатие.локация="локация для отслеживания нажатий") \(АПЕРО.нажатие.набор="13, 37-40, 65, 68, 75, 83, 87") // коды клавиш, которые отслеживаются \(сообщение(\(мирс);\(гпоз1);\(гпоз2))) \(АПЕРО.блок.выравнивание текста="по центру") // ниже таблица отображаемого мира, устроена так, чтобы герой был в центре карты и загружает информацию о клетках в отдаленности 2 строки и 2 столбца в двух направлениях, но если герой находится на краю карты, то загружает только одно направление. [tab=1]\ЕСЛИ(гпоз1>2)\ТО([tr=50]\ЕСЛИ(гпоз2>2)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1-2).номер\(гпоз2-2))))]\(ресур(\(мир\(мирс).рес\(гпоз1-2).номер\(гпоз2-2))))[/td]\) \ЕСЛИ(гпоз2>1)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1-2).номер\(гпоз2-1))))]\(ресур(\(мир\(мирс).рес\(гпоз1-2).номер\(гпоз2-1))))[/td]\) [td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1-2).номер\(гпоз2))))]\(ресур(\(мир\(мирс).рес\(гпоз1-2).номер\(гпоз2))))[/td]\ЕСЛИ(гпоз2<10)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1-2).номер\(гпоз2+1))))]\(ресур(\(мир\(мирс).рес\(гпоз1-2).номер\(гпоз2+1))))[/td]\)\ЕСЛИ(гпоз2<9)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1-2).номер\(гпоз2+2))))]\(ресур(\(мир\(мирс).рес\(гпоз1-2).номер\(гпоз2+2))))[/td]\)[/tr]\) \ЕСЛИ(гпоз1>1)\ТО([tr=50]\ЕСЛИ(гпоз2>2)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1-1).номер\(гпоз2-2))))]\(ресур(\(мир\(мирс).рес\(гпоз1-1).номер\(гпоз2-2))))[/td]\)\ЕСЛИ(гпоз2>1)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1-1).номер\(гпоз2-1))))]\(ресур(\(мир\(мирс).рес\(гпоз1-1).номер\(гпоз2-1))))[/td]\)[td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1-1).номер\(гпоз2))))]\(ресур(\(мир\(мирс).рес\(гпоз1-1).номер\(гпоз2))))[/td]\ЕСЛИ(гпоз2<10)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1-1).номер\(гпоз2+1))))]\(ресур(\(мир\(мирс).рес\(гпоз1-1).номер\(гпоз2+1))))[/td]\)\ЕСЛИ(гпоз2<9)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1-1).номер\(гпоз2+2))))]\(ресур(\(мир\(мирс).рес\(гпоз1-1).номер\(гпоз2+2))))[/td]\)[/tr]\) [tr=50]\ЕСЛИ(гпоз2>2)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1).номер\(гпоз2-2))))]\(ресур(\(мир\(мирс).рес\(гпоз1).номер\(гпоз2-2))))[/td]\)\ЕСЛИ(гпоз2>1)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1).номер\(гпоз2-1))))]\(ресур(\(мир\(мирс).рес\(гпоз1).номер\(гпоз2-1))))[/td]\)[td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1).номер\(гпоз2))))]Герой[/td]\ЕСЛИ(гпоз2<10)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1).номер\(гпоз2+1))))]\(ресур(\(мир\(мирс).рес\(гпоз1).номер\(гпоз2+1))))[/td]\)\ЕСЛИ(гпоз2<9)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1).номер\(гпоз2+2))))]\(ресур(\(мир\(мирс).рес\(гпоз1).номер\(гпоз2+2))))[/td]\)[/tr] \ЕСЛИ(гпоз1<10)\ТО([tr=50]\ЕСЛИ(гпоз2>2)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1+1).номер\(гпоз2-2))))]\(ресур(\(мир\(мирс).рес\(гпоз1+1).номер\(гпоз2-2))))[/td]\)\ЕСЛИ(гпоз2>1)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1+1).номер\(гпоз2-1))))]\(ресур(\(мир\(мирс).рес\(гпоз1+1).номер\(гпоз2-1))))[/td]\)[td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1+1).номер\(гпоз2))))]\(ресур(\(мир\(мирс).рес\(гпоз1+1).номер\(гпоз2))))[/td]\ЕСЛИ(гпоз2<10)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1+1).номер\(гпоз2+1))))]\(ресур(\(мир\(мирс).рес\(гпоз1+1).номер\(гпоз2+1))))[/td]\)\ЕСЛИ(гпоз2<9)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1+1).номер\(гпоз2+2))))]\(ресур(\(мир\(мирс).рес\(гпоз1+1).номер\(гпоз2+2))))[/td]\)[/tr]\) \ЕСЛИ(гпоз1<9)\ТО([tr=50]\ЕСЛИ(гпоз2>2)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1+2).номер\(гпоз2-2))))]\(ресур(\(мир\(мирс).рес\(гпоз1+2).номер\(гпоз2-2))))[/td]\)\ЕСЛИ(гпоз2>1)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1+2).номер\(гпоз2-1))))]\(ресур(\(мир\(мирс).рес\(гпоз1+2).номер\(гпоз2-1))))[/td]\)[td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1+2).номер\(гпоз2))))]\(ресур(\(мир\(мирс).рес\(гпоз1+2).номер\(гпоз2))))[/td]\ЕСЛИ(гпоз2<10)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1+2).номер\(гпоз2+1))))]\(ресур(\(мир\(мирс).рес\(гпоз1+2).номер\(гпоз2+1))))[/td]\)\ЕСЛИ(гпоз2<9)\ТО([td=20% \(цвeт(\(мир\(мирс).цветс\(гпоз1+2).номер\(гпоз2+2))))]\(ресур(\(мир\(мирс).рес\(гпоз1+2).номер\(гпоз2+2))))[/td]\)[/tr]\)[/tab] \(АПЕРО.кнопка.без подчеркивания=1) // ниже таблица взаимодействия для смартфонов [table=1][tr=40 #4499cc][td=20%]\(влево, [color=red][size=30]⇇[/size][/color])[/td][td=20%]\(вверх, [color=red][size=30]⇈[/size][/color])[/td][td=20%][color=red][size=20]\(исслед, 🔎)[/size][/color][/td][td=20%]\(вниз, [color=red][size=30]⇊[/size][/color])[/td][td=20%]\(вправо, [color=red][size=30]⇉[/size][/color])[/td][/tr][/table] \(АПЕРО.кнопка.без подчеркивания=0) \(АПЕРО.блок.выравнивание текста="по левому краю") \(карта, Обновить) \СТОП \локация для отслеживания нажатий // взависимости от нажатой клавиши переход в ту или иную локацию \ЕСЛИ(АПЕРО.нажатие.код="87" ИЛИ АПЕРО.нажатие.код="38") \ТО( \(вверх)\) \ЕСЛИ(АПЕРО.нажатие.код="83" ИЛИ АПЕРО.нажатие.код="40") \ТО( \(вниз)\) \ЕСЛИ(АПЕРО.нажатие.код="65" ИЛИ АПЕРО.нажатие.код="37") \ТО( \(влево)\) \ЕСЛИ(АПЕРО.нажатие.код="68" ИЛИ АПЕРО.нажатие.код="39") \ТО( \(вправо)\) \ЕСЛИ(АПЕРО.нажатие.код="75" ИЛИ АПЕРО.нажатие.код="13") \ТО( \(исслед)\) \СТОП \вверх // есть ограничитель, чтобы не уйти за карту, если в клетку нельзя зайти, то возвращает в исходную, также работают и другие локации перемещения \ЕСЛИ(гпоз1>1) \ТО(\(гпоз1=гпоз1-1)\) \ЕСЛИ(мир\(мирс).движ\(гпоз1).номер\(гпоз2)=1) \ТО(\(гпоз1=гпоз1+1) Не удалось пройти! Впереди река, а плававать в броне опасно!\) \СТОП(карта) \влево \ЕСЛИ(гпоз2>1) \ТО(\(гпоз2=гпоз2-1)\) \ЕСЛИ(мир\(мирс).движ\(гпоз1).номер\(гпоз2)=1) \ТО(\(гпоз2=гпоз2+1) Не удалось пройти! Впереди река, а плававать в броне опасно!\) \СТОП(карта) \вправо \ЕСЛИ(гпоз2<10) \ТО(\(гпоз2=гпоз2+1)\) \ЕСЛИ(мир\(мирс).движ\(гпоз1).номер\(гпоз2)=1) \ТО(\(гпоз2=гпоз2-1) Не удалось пройти! Впереди река, а плававать в броне опасно!\) \СТОП(карта) \вниз \ЕСЛИ(гпоз1<10) \ТО(\(гпоз1=гпоз1+1)\) \ЕСЛИ(мир\(мирс).движ\(гпоз1).номер\(гпоз2)=1) \ТО(\(гпоз1=гпоз1-1) Не удалось пройти! Впереди река, а плававать в броне опасно!\) \СТОП(карта) \исслед // при нахождении игрока в определенной клетке и условии наличия действия, если мост восстановлен, то мы не можем его еще раз восстановить \ЕСЛИ(гпоз1=9 И гпоз2=5 И сообщил1.поз9.номер5=1) \ТО(\СТОП(мост1)\) \ЕСЛИ(гпоз1=7 И гпоз2=7 И сообщил1.поз7.номер7=1) \ТО(\СТОП(клад1)\) \СТОП(карта) \сообщение(р1;р2;р3) // выводит информацию о клетке в которой находится герой и ее позицию \ЕСЛИ(сообщил\(р1).поз\(р2).номер\(р3)=1) \ТО( \(сообщили\(р1).поз\(р2).номер\(р3)) \) Ваши координаты: \(р1);\(р2);\(р3) \СТОП \мост1 Мост восстановлен! Вы можете пройти по нему! \(сообщил1.поз9.номер5=0) //убрали информацию о том что мост не воссановлен \(сообщили1.поз9.номер5=0) // само сообщение обнулено \(мир1.цветс9.номер6=2) // изменили цвет клетки с мостом \(мир1.движ9.номер6=0) // дали возможность пройти по клетке с мостом \(мир1.рес9.номер6=5) // заменили название клетки со "сломанный мост" на "мост" \(сообщил1.поз9.номер6=1) // добавили сообщение о тот, что мост восстановлен \(сообщили1.поз9.номер6="Недавно вы восстановили этот мост!") // само сообщение \СТОП(карта) \клад1 Клад найден. Вы отлично справились! \(сообщил1.поз7.номер7=0) \(сообщили1.поз7.номер7=0) \(мир1.рес7.номер7=0) \(мир1.цветс7.номер7=1) // убрали упоминание о том, что здесь был клад, сменили цвет клетки и ее название \(АПЕРО.нажатие.локация="") \(карта, Вернуться к карте мира) \(АПЕРО.конец=1) \СТОП