4
@echo off
color 0a
title Horror Game
echo.
echo.
echo.
echo.
echo Welcome to the game
echo If you get scared
echo Feel free to leave
echo.
echo.
echo You are in a dark room.
echo It is cold.
echo All you hear is a scratching sound
echo near your feet.
echo What do you do?
echo.
echo.
echo 1.) Feel around you
echo 2.) Listen for anything else
set/p input = Command?
if %input% == "1" goto Feel
if %input% == "2" goto Listen
echo.
echo.
:Feel
echo You feel around and hear a growl.
echo As you realize the scratching was
echo on your leg.
echo. 
echo You remember nothing else.
pause
end

私はcmd用のテキストベースのゲームを作ろうとしていますが、応答を入力しようとするとすぐに閉じて、「gotoは現時点では予想外でした」とほとんど読めません

4

2 に答える 2

7

テストを正しく作成していません。変数を二重引用符で囲む必要があります。

if "%input%" == "1" goto Feel
if "%input%" == "2" goto Listen

1 または 2 に入らなかった可能性に対処するために、これらの後に追加の条件が必要であることに注意してください。

choiceの代わりに コマンドを使用することを検討してくださいset /pchoice /?コマンド プロンプトから入力します。

今後、早期終了の問題が発生した場合は、コマンド プロンプトからスクリプトを実行してください。そうすれば、ウィンドウが閉じず、エラーを読む時間が十分にあります。

Windows Key-を押しR、入力cmdして押すと、コマンドプロンプトをすばやく実行できますEnter

于 2013-11-11T03:51:34.277 に答える
1

コマンド内のinputとの間のスペースを削除する必要があります。削除しないと、実際には名前の付いた変数を設定しています(末尾にスペースがあります)。これは期待どおりに機能します。=setinput 

echo 1.) Feel around you
echo 2.) Listen for anything else
set/p input=Command?
if %input% == "1" goto Feel
if %input% == "2" goto Listen
echo.
echo.
:Feel
echo You feel around and hear a growl.
echo As you realize the scratching was
echo on your leg.
echo. 
echo You remember nothing else.

%input%ただし、これを引用符なしで囲むunexpected gotoと、ユーザーがスペースを含む入力を入力するとエラーが発生します。選択コマンドを使用するための水田の提案は、おそらく進むべき道です。

于 2013-11-11T04:06:53.810 に答える