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)