为什么这个批量代码不能用于我的游戏?

时间:2014-01-31 09:50:07

标签: windows batch-file cmd

我对批量编码和其他东西一直很有趣,我一直在做一个有多种选择和结局的文字冒险游戏。在某一点上,你可以选择成为总统。

:lvl1
cls
color 0a
echo You awake in a dark room.
echo What do you do?
echo.
echo 1) Take the nearest torch.
echo 2) Do nothing.
echo 3) Become the president.
echo 4) Wait, isn't this exactly like The Adventure 1?
set /p answer=

if %answer% == 1 goto lvl2-1
if %answer% == 2 goto bordem
if %answer% == 3 goto presidency
if %answer% == 4 goto yes

基本上我在这里有一个小小的内幕笑话,因为这是续集,而且它的开场也是一样。 所以你可以选择总统选项,这是它的代码。

:presidency
cls
color 0a
echo You decided to become the President
echo What do you do now?
echo.
echo 1) RAISE TAXES!
echo 2) MAKE A SPEECH!
echo 3) NOTHING!
echo 4) DECREASE TAXES!
set /p answer=

if %answer% == 1 goto really?
if %answer% == 2 goto speech
if %answer% == 3 goto uselesspresident
if %answer% == 4 goto thankyouforthat

现在,您应该能够选择第三个选项,它会带您进入其中一个结局。 但我尝试在批量版本中这样做,但是我看到了无用的主屏幕的闪光然后它让我回到了第一级(lvl1)。 这是无用事务的代码:

:uselesspresident
cls
color 0a
echo You did nothing as the president.
echo Worst. President. Ever.
echo Achievement unlocked!: Lazy ass.
echo USELESS PRESIDENT ENDING
echo Play more?
echo (y/n)
set /p answer=

if %answer% == y goto lvl1
if %answer% == n goto menu

我看不出代码有什么问题,也许你们中的一个可以吗? 我还没有测试过我的所有游戏,所以如果我遇到更多的编码问题,我会将它发布到这个论坛。 如果你能找到问题,谢谢你。

编辑:我已经弄清楚了。 我不敢相信我没有早点想到它,但是这里有。 当我意识到这一点时,我正在从文本文件进行编辑,而不是批处理本身:

echo (y/n)
set /p answer

if %answer% == y goto lvl1
if %answer% == n goto menu

这就是我修好之前的事情,所以我添加了=符号然后将其修复然后保存。 但我没有将其导出为.bat,因此.bat仍然相同,但文本文件已被编辑。 我真的需要记住编辑.bat文件而不是单独编辑文本文件。

2 个答案:

答案 0 :(得分:3)

假设问题出在输入值的情况下,您可以尝试使用以下内容替换测试:

echo (y/n)
set /p answer=
if /I %answer% EQU y echo yes
if /I %answer% EQU n echo no

当然用您的echo语句替换goto。这假设启用了命令扩展(默认情况下应该是这样),并且基本上执行不区分大小写的比较。

答案 1 :(得分:0)

我认为

if %answer% == "y" goto lvl1
if %answer% == "n" goto menu