0

所以,我和另外两个朋友正在尝试制作一个批量运行的基于文本的游戏,一切都很顺利,好吧,除了这一件事,通常在基于文本的游戏中,当玩家没有输入正确的输入时,游戏通常会响应“不知道是什么(玩家输入)”之类的内容,而在我们的情况下,它只是出现错误并继续下一行,所以,我的问题是,我们如何才能解决这个问题并做到这一点基于文本的游戏应该怎么做?

谢谢!

这是一些代码:

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,如果您不输入任何内容,则代码将永远无法工作,然后它会进入 ERROR

于 2013-03-13T02:15:33.840 回答