あいうえおch.
Members Link
前へ - 次へ

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)