2017-11-15 1 views
1

まずはお読みいただきありがとうございます。バッチで乱数を0から5まで選択するにはどうすればよいですか?

私はそれを練習して慣れ親しんだバッチで楽しい小さなプログラムを作っています。私はこれが最高の言語ではないかもしれないことを知っていますが、それは私が使っているものです。ここで

は私が持っているものです。

@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 

それは完全にユーザーが書き込み、ちょうどランダムな答えを選ぶ何無視するように、私はそれをしたいです。しかし、私がそれを試してみると、私は質問を入力し、エンターを押して、それは何もしません。別の入力物が新しいテキストなしでポップアップし、そこに入力したものに関係なくクラッシュします。私はここで答えを見つけようとしましたが、うまくいくものを見つけることができませんでした。

ご迷惑をおかけして申し訳ございませんが、ご迷惑をおかけして申し訳ございません。

+1

この2行のコードでは、日に日に明記する必要があります。 'set/a" rand =%random %% 6 "'と 'goto option%number%'のようになります。 cmdプロンプトからバッチファイルを正しく実行し、 'echo on'を実行してバッチファイルをデバッグすると、エラーメッセージが平日に表示されることがあります。 – Squashman

+0

@Squashmanありがとうございました!私はそれを試してはいけないほど愚かだった... –

答えて

0

あなたの主な問題は、あなたset /a randが、その後、あなたが `後藤オプション%のランドの%Iを変更

いくつかの他のものであるべきgoto option%number%を言う代わりに、変数としてrandを使用することはありませんが、:ask trump後にこの方法をCLSを追加したことですc:\>プロンプトが表示されなくなり、通常のcmd画面が表示されます。clsが残りのタグにも追加されたので、画面上ではよりクリーンなものに見えます。

最後に、set /a rand=%random% %%6という行は、0 - 5の間に設定された数値を生成します。実際の値に基づいてオプションをラベル付けする方が良いアイデアのように聞こえます。だから私は6つの答えがある場合0 - 5の代わりに1 - 6のラベルを付けたいので、ランダムを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 
関連する問題