2017-01-04 30 views
-2

これは、バッチ内の私のコードです:バッチ問題(サイコロを作る)

:Dice 
set /a roll=(%random% %% 6) + 1 
set /a on=%on%+%roll% 
if %on%>19 goto DiceOver19 
if %on%<20 goto Camp1_1 

私は独占を作るしようとしていると私はほとんどすべてを設定しています。 私はこれを理解しようとしてきましたが、私はちょうど傾けません。私が「サイコロを巻く」を選択するまで、すべてがうまくいく。 ^^上記はダイスのコードです。

ダイスに行くとすぐにプログラムが終了します。

編集:これで問題は解決しました。

+0

2番目のset文にオプション/ Aがありません。 IFコマンドのヘルプを読んでください。コマンドプロンプトで「IF /?」と入力します。 – Squashman

+0

まだ応答がありません。 –

+0

あなたが何を変更したか分かりません。コードを変更した場合は、質問を更新してください。 – Squashman

答えて

0

コメントの助けを借りてあなた自身の問題を解決したにもかかわらず、私はこの回答を追加しました。あなたの質問に対する直接的な回答は比較演算子と標準ロールループを含みます。二重の6ロールニングのイベント。

@Echo Off 
:Roll 
Set "dice=0" 
:Loop 
Set/A "die1=%random%%%6+1" 
Set/A "die2=%random%%%6+1" 
Echo(%die1% + %die2% 
Set/A "dice=die1+die2+dice" 
Set/A "mod=dice%%12" 
If %mod% Equ 0 (Echo= Double 6 rolls again & GoTo Loop) 
Echo(Total=%dice% 
:Next 
Timeout 3 1>Nul 

注意はこれが唯一の情報のためである(私はそれが、少なくとも他の人に利益をもたらす願っています)。

関連する問題