【问题标题】:Batch text based game bugs when the player doesn't provide the correct input当玩家未提供正确输入时,批处理基于文本的游戏错误
【发布时间】:2012-07-27 13:06:35
【问题描述】:

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

谢谢!

这里是一些代码:

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

【问题讨论】:

  • 我不确定您所说的“它只是出现错误并继续下一行”是什么意思,但听起来您只需要在代码中添加一些输入验证。看这里:stackoverflow.com/q/684301/328193

标签: batch-file


【解决方案1】:

没有看到您正在使用的代码,很难知道出了什么问题。

尝试使用类似的东西

: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

【讨论】:

  • 不用担心,如果这回答了您的问题,您应该点击旁边的勾号接受它。
  • 是的,但是现在我遇到了其他问题,如果输入超过一个单词,它就会关闭,我已经在原帖中添加了一些代码,谢谢!
  • 我已经更新了我的答案,带有一个带有空格的选项示例,可能是您的语法导致了问题,它有点错误,试试我的版本,看看你是怎么做的。
【解决方案2】:

您也可以尝试使用类似的东西... 我不确定,但我认为您使用参数 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

你必须把否定 1 放在最后,否则如果你在哪里不输入 1,代码将永远无法工作 如果您不输入任何内容,则会进入 ERROR

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多