2017-09-14 73 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

它仍然說在程序退出前一秒鐘有一個無效的語法。 – IronFlame

回答

1

謝謝你們,我想通了,我只是缺少雙重和四重空間以及if語句中的括號。

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