首先,感谢您阅读本文。
我正在制作一个有趣的小程序,用它练习并熟悉。我知道这可能不是最好的语言,但它是我正在使用的。
这就是我所拥有的:
@echo off
:ask trump
set /p Input= Ask Trump Something (Yes or No questions):
goto random
:random
set /a "rand=%random% %% 6"
goto option%number%
cls
:option0
echo You asked: %Input%
echo Trump: Covfefe
pause
goto ask trump
:option1
echo You asked: %Input%
echo Trump: I dont know, and I dont care.
pause
cls
goto ask trump
option2
echo You asked: %Input%
echo Trump: CHINA
pause
cls
goto ask trump
:option3
echo You asked: %Input%
echo Trump: Build a wall.
pause
cls
goto ask trump
:option4
echo You asked: %Input%
echo Trump: I think so, yes.
pause
cls
goto ask trump
:option5
echo You asked: %Input%
echo Trump: No, I don't think there's a chance.
pause
cls
goto ask trump
我希望它能完全忽略用户写的内容,只选择一个随机的答案。但是,每当我尝试它时,我输入一个问题,点击输入,它什么都不做。弹出的另一个输入事物没有任何新文本,无论我在那里键入什么,它都会崩溃。我试图在这里找到答案,但我找不到可以工作/做我想要的东西。
再次,我非常感谢任何帮助,如果我浪费你的时间,我会道歉。
答案 0 :(得分:0)
您的主要问题是set /a rand
但是您从不使用rand
作为变量,而是说goto option%number%
应该是`goto option%rand%
我改变了一些其他的东西,在:ask trump
之后添加了cls,这样你就可以摆脱c:\>
提示并留下一个普通的cmd屏幕。
cls也被添加到其他标签中,因此它在屏幕上看起来会更清晰。
最后,行set /a rand=%random% %%6
将生成一个在0 - 5
之间设置的数字,这很好,因为它是6个数字,但是根据实际值标记您的选项听起来更好。因此,如果我有6个答案,我想将它们标记为1 - 6
而不是0 - 5
,因此最好将随机设置为set /a rand=%random% %%6 +1
。选项也会相应更新。
@echo off
:ask trump
cls
set /p Input= Ask Trump Something (Yes or No questions):
goto random
:random
set /a rand=%random% %%6 +1
goto option%rand%
:option1
cls
echo You asked: %Input%
echo Trump: Covfefe
pause
goto ask trump
:option2
cls
echo You asked: %Input%
echo Trump: I dont know, and I dont care.
pause
cls
goto ask trump
:option3
cls
echo You asked: %Input%
echo Trump: CHINA
pause
cls
goto ask trump
:option4
cls
echo You asked: %Input%
echo Trump: Build a wall.
pause
cls
goto ask trump
:option5
cls
echo You asked: %Input%
echo Trump: I think so, yes.
pause
cls
goto ask trump
:option6
cls
echo You asked: %Input%
echo Trump: No, I don't think there's a chance.
pause
cls
goto ask trump