2014-01-10 2 views
0

Я делаю игру в пакетном режиме. Я знаю, что партия не очень мощная, но это моя первая игра. В любом случае я делаю заявление if, и если вы пройдете через дверь 1, вы будете жить, но если вы пройдете через дверь, то вы умрете. К сожалению, когда я иду через любую дверь, программа перезапускается. Здесь я покажу вам мой код:проблема с пакетом (если утверждение)

`@echo off 
color 02 
::stats 
set Badasspts=0 

:Beginning 
echo Hello what is your name? 
set /p name= 
echo Hello %name%! 
echo You have two doors to go through. Which one? Possible answers: 1 or 2 
set /p answer1= 
if answer1==1 goto youLive 
if answer1==2 goto youDie 
:youDie 
echo Behind this door is an alligator pit you accidentally fall in and die! 
goto Beginning 

:youLive 
echo Well... well... well... you live this time but now ummm... A wild monster appears. What do you do? Possible answers: hug, attack 
set /p hugAttck= 
if hugAttack==hug goto hug 
if hugAttack==attack goto attack1 

:hug 
echo You hug that cute furry monster soooo hard that he dies. Plus 1 BADASS points!!!! 
pause` 

Примечания: Я программирую в Notepad ++. Это еще не закончено, да.

+0

Как запустить этот скрипт? Сохраните его в * .bat-файле и запустите его из командной строки? – zehelvion

ответ

0

В настоящее время ни одно условие не имеет значения true, и программа вообще не прыгает. Он выполняет бит 'youDie', потому что программа, естественно, переходит к следующей строке. Причина, по которой оба условия оцениваются как ложные, независимо от пользовательского ввода, заключается в том, что операторы if сравнивают строку «answer1» вместо переменной «answer1» с числом. Правильный синтаксис: if %answer1%==1 goto youLive.

0

Вы не сделали %answer1%, поэтому он не работает.

Вы сравниваете слово answer1, а не переменную.

Как и вы, напишите %name%, вам нужно сделать то же самое с ответом.

Когда вы отлаживаете (ищет проблемы в скрипте), не отключайте эхо.

Смежные вопросы