section1order
F12押して幅480px、高さ640px分とってあるcanvas画面をクリックすると、
Consoleにいろいろ表示される。
ひとまずワールドルールの一巡ごとにランダム。
残りがネクスト表示分を下回ったら、7つ分の配列をシャッフルして、
Array.prototype.push.apply(Arrey1, Arrey2) // 後に改修
を使って実装する。
配列を用意して、
候補が順番に並んでて、
先頭を取得して、
その先頭を削除。
世界最速の配列シャッフルアルゴリズム、Fisher-Yatesアルゴリズム | panda noir
JavaScriptの配列の使い方まとめ。要素の追加,結合,取得,削除。 | Qiita
テトリスのかけらもない。でも次でいっぱい押せるめう。
section1_order.js
var canvas = document.getElementById(("myCanvas"))
var context = canvas.getContext("2d")
var currentTetrimino = []
var nextNumber = 3
function makeArray(num){
var candidate = []
for(var i = 0; i < num; i++){
candidate.push(i)
}
return candidate
}
function shuffle(arr){
for (var i = arr.length - 1; i > 0; i--){
var r = Math.floor(Math.random() * (i + 1))
var tmp = arr[i]
arr[i] = arr[r]
arr[r] = tmp
}
return arr
}
// クリックするたびにツモる
function onDown(e) {
if (currentTetrimino.length < nextNumber) {
Array.prototype.push.apply(currentTetrimino, shuffle(makeArray(7)))
}
console.log("length:" + currentTetrimino.length)
console.log(currentTetrimino)
console.log("extract: " + currentTetrimino[0])
currentTetrimino.shift()
}
canvas.addEventListener('mousedown', onDown, false)