2017-09-01 175 views
2

我正在爲Discord創建一個基本的擲骰子程序,我想知道如何在變量中設置一個變量。我可能會過於複雜的事情,但我仍然想看看這是否可能,以及是否有更好的方法來做到這一點。這是我當前的代碼: Javascript set var var

while (dice > 0) { 
 
     var die = Math.floor(Math.random() * (7 - 1) + 1) 
 
     console.log("roll: " + die + ", currently: " + dice) 
 
     dice = dice - 1 
 
     message.channel.sendMessage(die) 
 
    }

所以目前這樣做的工作「井」。我想用roll變量來存儲dice變量(您定義擲出多少個骰子的部分)。我猜這將是類似的東西 var roll = r.dice

基本上,我所要做的就是將卷保存爲不同的變量,將它們發送到一條消息。因此,代碼將它們保存爲R.10到R.1,那麼我可以介紹這些變量作爲一個消息 r.10 . . r.1

這是可能與我使用的方法,或者是有沒有更好的辦法?

+0

你想JS對象或數組? – zerkms

+0

您可能正在尋找創建一個骰子卷的數組。在這種情況下,將每個卷與數組中的每個索引關聯起來並不重要。要將它連接成單個消息,請執行如下操作:[2,5,6,2,6,1,6] .map(function(value,index){return「r。」+(index + 1)+ 「:」+ value;})。join('\ n'); – Brian

+0

不要介意我說我需要變量內部變量的幫助的部分,我發現了(var roll =「r。」+ dice)但是,還有一種更簡單的方法嗎? – Joey244

回答

0

你可以使用一個陣列:

這個例子將產生10個擲骰,將它們添加到陣列中roll,然後輸出該陣列作爲單個消息。

var roll = []; 
 
var dice = 10; 
 
while (dice --> 0) { 
 
    var die = Math.floor(Math.random() * 6 + 1); 
 
    roll.push(die); 
 
} 
 
var output = roll.map((x, i) => { 
 
    return 'r.' + (roll.length - i) + ': ' + x; 
 
}).join('\n'); 
 

 
console.log(output); 
 
//message.channel.sendMessage(output)

+0

嘿謝謝你幫助我,我有點什麼瞭解發生了什麼,但總的來說謝謝你。一個我以前沒有遇到的輕微問題是數字可能超過6,一些例子是14,12,7,10。這可以解決嗎?我不太清楚爲什麼會出現這種情況,我在代碼中編輯的所有內容都是刪除「r」。和「:」用「,」替換「\ n」,所以它輸出一個乾淨的數字行。任何方式這是可以解決的? – Joey244

+0

刪除':'時,是否在'(roll.length - i)'和'x'之間留有空格?我認爲你得到6以上結果的唯一原因是如果它將模具號添加到結果中。 –

+0

是的,那確實發生過。在你迴應之前有一點點,我尋找了一種模式來幫助並看到是什麼讓它結束,而不是隻是一個''。不過謝謝您的幫助。 – Joey244

0
function doRolls(numRolls) 
{ 
    var rolls = []; 
    for (var i=0; i < numRolls; i++) { 
     rolls.push(Math.floor(Math.random() * (7 - 1) + 1)) 
    } 
    return rolls; 
} 

rolls = doRolls(10); 

for (var i=0; i < rolls.length; i++) { 
    console.log("roll: " + i + ", value: " + rolls[i]) 
    message.channel.sendMessage(rolls[i]) 
} 
0
var rolls = [] 
for (var n = 0; n < 10; n += 1) { 
    var roll = Math.floor(Math.random() * 6) + 1; 
    rolls.push(roll); 
} 

console.log(rolls); 

for (var n = 0; n < 10; n += 1) { 
    console.log("Roll number", n, "->", rolls[n]); 
} 
+0

**來自評論**:此答案被標記爲**低質量**。雖然答案總是值得讚賞的,但它確實有助於提供一些關於您的代碼如何解決手頭問題的信息。不是每個人都可能熟悉你的確切編碼邏輯,但可以理解你的一般*方法*或*概念*。爲了幫助改進您的答案,請提供一些[**環境**](https://meta.stackexchange.com/questions/114762),並參閱關於[**寫出優秀答案**]的幫助文章( http://stackoverflow.com/help/how-to-answer)關於如何讓你的答案數:)的一些提示 –