最近我创建了一个小型BATCH游戏。
问题是,因为我使用Windows的CMD BATCH语言,游戏无法在DOS或DOSbox中正常运行。
开场很好,但是一旦我到达第一个播放器输入部分,我就会出现“语法错误”错误。
有没有人知道Windows CMD命令的MS-DOS等价物?
例如,在基于CMD的BATCH文件中,我使用“set ...”来设置输入。 DOS版本的“集合......”会是什么?
:start
cls
echo GUESSING GAME
echo.
echo Created By: John Ingram
echo Copyright 2015
echo.
pause
goto :begin
:begin
cls
echo Please enter the number of your desired difficulty setting.
echo.
echo 1) Easy: Guess a number from 1-10
echo 2) Normal: Guess a number from 1-100
echo 3) Hard: Guess a number from 1-1000
echo.
echo Type "Quit" to exit the game.
echo.
echo Have Fun!
set /p choice=Enter:
if %choice%==1 (
goto :difficulty1
)
if %choice%==2 (
goto :difficulty2
)
if %choice%==3 (
goto difficulty3
)
if %choice%==quit (
goto :endgame
)
if %choice%==Quit (
goto :endgame
)
if %choice% GTR 3 (
echo.
echo I do not understand that command.
echo.
pause
goto :begin
)
pause
一旦玩家在开始游戏后按下一个键并且被带到第一个输入部分(:begin),麻烦就开始了。
这与DOS / DOSbox无法将“/ p”注册为SET命令有什么关系吗?
如果是这样,DOS等价物是什么?
答案 0 :(得分:0)
我建议使用带有MSDOS 7.1的virtualbox而不是DOSBOX。 DOSBOX是一个模拟器,你将获得更少的麻烦,而Virtualbox将运行它,好像它运行一个运行MSDOS的实际IBM-PC 。
你的游戏中有一个主要缺陷:
SET /P CHOICE=ENTER
在DOS中,此命令不起作用。我知道一种解决方法,但我不知道如何制作方程if "%choice%"=="1"
。它使用QBASIC。
PRINT ENTER; CHOICE$
将完成这项工作。
PRINT
回应ENTER
分号; CHOICE$
设置变量CHOICE。您需要$
变量才能包含字符串。
您可以在线找到大量的QBASIC教程。找到一个后,弄清楚如何在IF CHOICE $ = 1上执行if
语句,打开一个内容为:dificulty3
的文件。
我可以发布IF声明,因为我找到了一个。