私は、CoffeeScript:Accelerated JavaScript Developmentという本を読んでいる経験の浅いJavaScriptユーザーです。この本では、著者が一種のScrabbleアプリ(5 x 5グリッドのScrabble単語を使用)を作成して、実際の概念のいくつかを示しています。以下の方法で少し問題がありrandomLetter
ます。これらの点を参照して、誰かが以下のコードスニペットを説明できますか?
i)作者はx = 1
そうしますが、xに文字を割り当てているようx += tileCounts[letter]
です。なぜそうするのですか?
ii)(i)で想定していることとは反対に、彼がxに文字ではなく番号を割り当てている場合、「文字」が実際に各文字に関連付けられた番号を表すとどのように機能しますか?
iii)ここに表示されている内容に基づいて、randomNumberより大きい場合にのみxを返す理由を理解できますか?この質問に答えるのに十分な情報がここにないかもしれないと思いますが、ある場合は説明してください
tileCounts =
A: 9, B: 2, C: 2, D: 4, E: 12, F: 2, G: 3, H: 2, I: 9, J: 1, K: 1, L: 4
M: 2, N: 6, O: 8, P: 2, Q: 1, R: 6, S: 4, T: 6, U: 4, V: 2, W: 2, X: 1
Y: 2, Z: 1
totalTiles = 0
totalTiles += count for letter, count of tileCounts
alphabet = (letter for letter of tileCounts).sort()
randomLetter = ->
randomNumber = Math.ceil Math.random() * totalTiles
x = 1
for letter in alphabet
x += tileCounts[letter]
return letter if x > randomNumber
#END:moduleVars