2017-09-14 8 views
1

私はYahtzeeゲームを作ろうとしています。特定のサイコロの顔をエコーさせるために、数字1〜6をランダム化する必要があります。バッチ変数をランダム化

:gameplay 
    cls 
    pause 
    SET /A dice=%RANDOM% %%6+1 
    if %dice%==1 
    echo %dice1a% 
    echo %dice1b% 
    echo %dice1c% 
    echo %dice1d% 
    echo %dice1e% 
    echo %dice1g% 
    pause 

これは私が開発したコードです。まだ完成していませんが、これは単なるランダマイザーのテストです。私がこれを実行するたびに、それは最初の一時停止に達し、プログラムを終了します。あなたは問題が何であるか知っていれば教えてくれますか?複数の変数を格納することが可能かどうか疑問に思っていましたので、複数の変数を常にエコーする必要はありません。あなたが何かを知っているなら、教えてください。おかげ

編集:私は、変数が正しく設定されていないと思うので、

:gameplay 
    cls 
    pause 
    SET /A dice=%RANDOM% %%6+1 
    if %dice%=1 
    echo Hi 
    pause 
    echo %dice1a% 
    echo %dice1b% 
    echo %dice1c% 
    echo %dice1d% 
    echo %dice1e% 
    echo %dice1g% 
    pause 

それは第二のポーズにフォロースルーしませんでした: は、私はあなたが提案し、これをやったことを試してみました。今回は、無効になったコマンド構文が終了する直前に気づいたことはほとんどありませんでした。しかし、提案をありがとう。

+0

最初の一時停止だけが確実に行われますか?それが倒れるように見える。そこにいくつかのエコーを入れてください。 – yacc

+0

'if%dice%== 1 'でもう一度試してください – yacc

+0

プログラムが終了する前に、1秒間に無効な構文があると言われます。 – IronFlame

答えて

1

私はそれを理解しました。私はちょうどif thenステートメントの中の二重と四重のスペースと括弧が欠けていました。

SET /A dice=%RANDOM% %%6 +1 
     if %dice%==1 (
     echo %dice1a% 
     echo %dice1b% 
     echo %dice1c% 
     echo %dice1d% 
     echo %dice1e% 
     echo %dice1f% 
     echo %dice1g% 
    ) 

私は本当にそれだけで私は愚かされていた場合でも、私を助けるために試みた皆に感謝し、私は本当に私の全体の方法を支援するためのYACCを感謝しています。一度ゲームを終了したい場合は、私のことについてのセクションにコピーします。

+0

あなたがそれに取り組んできたように見え、報告のために+1しています。ゲームが準備ができているかどうかをお知らせください。 – yacc

+0

https://stackoverflow.com/questions/46284719/set-a-for-loop-for-rolling-dice – IronFlame

+0

これは私のYahtzeeゲームに関する私の新しい質問へのリンクです。 – IronFlame