пакет - динамические метки или функции

Я создаю пакетное текстовое приключение (потому что это самый простой язык для этого, практически не требующий опыта программирования), и я хочу знать, есть ли способ сделать динамические goto или метки.

Например, у меня есть динамическая система здоровья и энергии, которая отображает разные полосы здоровья в зависимости от переменной здоровья, полученной из файла сохранения на диске C:/.

Это требует довольно много кода, и было бы намного проще, если бы я мог просто вызвать функцию.

В качестве альтернативы я хотел бы иметь динамический goto. Я имею в виду переменную, а затем функцию перехода.

:foo
set currentlbl="foo-"
echo Hello!
goto foo2

:foo-
echo %test%
pause
exit

:foo2
if "test"=="chizzits" set test2="derp"
if "test"=="chuzzits" set test2="herp"
goto %currentlbl%

К сожалению, это не работает, так как команды goto не распознают переменные. Есть ли способ пройти мимо этого?


person Poyo    schedule 09.10.2013    source источник
comment
Кстати, если вы ищете простой язык программирования для простых текстовых игр - ИСПОЛЬЗУЙТЕ PYTHON   -  person Monacraft    schedule 09.10.2013
comment
неее... батч лучше для текстовых приключений, я слышал кто-то даже монополию сделал,   -  person cure    schedule 09.10.2013
comment
Правда, написать тривиальную программу с помощью пакета Windows несложно. Но на самом деле довольно сложно написать хорошо построенную сложную программу, подобную текстовому приключению. Вам понадобится много тайных знаний и уродливых лайфхаков, чтобы сделать то, что очень просто в большинстве языков. И отладка большого пакетного скрипта может стать настоящей проблемой. Если вы действительно настаиваете на использовании пакетной обработки, вы можете посмотреть мой порт оригинального Adventure для пакетной обработки по адресу dostips.com/forum/   -  person dbenham    schedule 09.10.2013


Ответы (1)


Да, могут, удалите кавычки в команде set или поместите кавычки в метку.

set currentlbl=foo-
:foo-

or

set currentlbl="foo-"
:"foo-"
person cure    schedule 09.10.2013