0

Batchでゲームを作っています。バッチがあまり強力ではないことは知っていますが、それは私の最初のゲームです。とにかく、私は if ステートメントを作成しています。ドア 1 を通過すると生存しますが、ドア 2 を通過すると死亡します。残念ながら、どちらかのドアを通過すると、プログラムが再起動します。ここで、私のコードを示します。

`@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++ でプログラミングしています。まだ終わっていないそうです。

4

2 に答える 2

0

現在、どちらの条件も true と評価されず、プログラムはまったくジャンプしません。プログラムは自然に次の行に進むため、'youDie' ビットを実行します。ユーザー入力に関係なく、両方の条件が false と評価される理由は、if ステートメントが変数 'answer1' ではなく文字列 'answer1' を数値と比較するためです。正しい構文は次のとおりif %answer1%==1 goto youLiveです。

于 2014-01-10T14:03:21.550 に答える
0

あなたはそうしなかった%answer1%ので、うまくいきません。

変数ではなく単語 answer1 を比較しています。

あなたが書いたのと同じよう%name%に、回答でも同じことをする必要があります。

(スクリプトの問題を探して) デバッグするときは、エコーをオフにしないでください。

于 2014-01-10T14:06:00.883 に答える