值还是=0?
Value still = 0?
我正在开发一个使用批处理编程的游戏,但出于某种原因,每当我向它添加 2 时,%wood% 值都保持为 0。我试图修复它,但我不能,我来这里是为了解决问题。有人知道如何解决这个问题吗?是我弄错了还是...
这里是源代码:
@echo off
title CommandCraft bg tst ns a. 1.01
color 2
echo W W W EEEE
timeout /t 1 /nobreak > nul
echo W W W E
timeout /t 1 /nobreak > nul
echo W W W EEEE
timeout /t 1 /nobreak > nul
echo W W W E
timeout /t 1 /nobreak > nul
echo WWWWWWW EEEE
timeout /t 1 /nobreak > nul
echo Presents
timeout /t 5 /nobreak > nul
cls
color 7
echo CommandCraft! (Version: bg tst ns a. 1.01)
echo.
echo Press any key to start
pause > nul
cls
:restart
set wood=0
set ore=0
set metal=0
echo You are in a forest.
:start
echo What do you do?
set /p action=Command?
if %action% == chop goto chop
if %action% == inventory goto items
:cmdelse
echo %action% is not a valid action.
goto start
:chop
echo You gained 2 peices of wood
set /a res = %wood% + 2
set %wood% = res
echo You now have %wood% peices of wood
goto start
:items
echo You have Wood x %wood%
echo You have Metal Ore x %ore%
echo You have Metal x %metal%
goto start
set %wood%=res
应该改为
set /a wood=%res%
。这是很多人常犯的错误,所以在发帖之前一定要检查重要行的语法,然后是 debugging the code! ;)
另外,你可以这样做
set /a wood+=2
因为它和
一样有效
set /a res=%wood%+2
set wood=%res%
并节省宝贵的行(行 是 批处理脚本可读性差的宝贵之处),因为您只需要分配一个变量。它还可以节省同样宝贵的内存...
除此之外,不错的游戏!
编辑:感谢您在评论中指出。距离上次使用 Batch 已经有一段时间了 :P
我正在开发一个使用批处理编程的游戏,但出于某种原因,每当我向它添加 2 时,%wood% 值都保持为 0。我试图修复它,但我不能,我来这里是为了解决问题。有人知道如何解决这个问题吗?是我弄错了还是...
这里是源代码:
@echo off
title CommandCraft bg tst ns a. 1.01
color 2
echo W W W EEEE
timeout /t 1 /nobreak > nul
echo W W W E
timeout /t 1 /nobreak > nul
echo W W W EEEE
timeout /t 1 /nobreak > nul
echo W W W E
timeout /t 1 /nobreak > nul
echo WWWWWWW EEEE
timeout /t 1 /nobreak > nul
echo Presents
timeout /t 5 /nobreak > nul
cls
color 7
echo CommandCraft! (Version: bg tst ns a. 1.01)
echo.
echo Press any key to start
pause > nul
cls
:restart
set wood=0
set ore=0
set metal=0
echo You are in a forest.
:start
echo What do you do?
set /p action=Command?
if %action% == chop goto chop
if %action% == inventory goto items
:cmdelse
echo %action% is not a valid action.
goto start
:chop
echo You gained 2 peices of wood
set /a res = %wood% + 2
set %wood% = res
echo You now have %wood% peices of wood
goto start
:items
echo You have Wood x %wood%
echo You have Metal Ore x %ore%
echo You have Metal x %metal%
goto start
set %wood%=res
应该改为
set /a wood=%res%
。这是很多人常犯的错误,所以在发帖之前一定要检查重要行的语法,然后是 debugging the code! ;)
另外,你可以这样做
set /a wood+=2
因为它和
一样有效set /a res=%wood%+2
set wood=%res%
并节省宝贵的行(行 是 批处理脚本可读性差的宝贵之处),因为您只需要分配一个变量。它还可以节省同样宝贵的内存...
除此之外,不错的游戏!
编辑:感谢您在评论中指出。距离上次使用 Batch 已经有一段时间了 :P