0

それで、私と他の 2 人の友人は、バッチで動作するテキスト ベースのゲームを作ろうとしていますが、すべてが順調に進んでいます。通常、「(プレーヤーの入力)が何であるかわかりません」などの応答があり、私たちの場合、バグが発生して次の行に進むだけなので、私の質問は、どうすればこれを修正してそれを行うことができるかということです.テキストベースのゲームがそれを行う方法は?

ありがとう!

コードの一部を次に示します。

set/p input="What do you want to do?"
if "%input%"=="play" goto :beg: 
if "%input%"=="quit" goto :quit:
if "%input%"=="credits" goto :credits:
if "%input%"=="start" goto :lvl1:
if "%input%"=="ilrdj87imwa" goto :lvl2:
if "%input%"=="valveisevil" goto :lvl3:

pause
4

2 に答える 2

2

使用しているコードを見ないと、何が問題なのかを知るのは困難です。

このようなものを使用してみてください

:LOOP
set /p input=Enter input
if %input%==ok (
goto :CONTINUE
) else (
echo Wrong input
goto :LOOP
)

:CONTINUE
REM Input ok, carry on

アップデート

set /p input=What do you want to do?
if "%input%"=="play" goto :beg 
if "%input%"=="play again" goto :pa
if "%input%"=="quit" goto :quit

:play
echo Play
pause >nul

:pa
echo Play again
pause >nul

:quit
exit >nul
于 2012-07-27T13:10:21.863 に答える
0

このようなものを試してみることもできます...よくわかりませんが、パラメーター eq(equals) neg(Negative) を使用していると思います 注: eq は実際には eg である可能性がありますが、よくわかりません...

編集: 実際のパラメータは equ と neg です

:loop
set /p choice=

if %choice% equ 1 goto game
if %choice% equ 2 goto info
if %choice% equ 3 goto options
if %choice% equ 4 goto exit
if %choice% neg 1 goto error

:error
echo Error you choose the wrong one...
echo Type c to continue
set /p start=

if %start% egu c goto loop
if %start% egu C goto loop
if %start% neg c goto error
if %start% neg C goto error

neg 1を最後に入力する必要があります。そうしないと、何も入力しないと1を入力しない場合、コードが機能しなくなり、エラーになります

于 2013-03-13T02:15:33.840 に答える