JavaScript

JavaScriptのsetTimeoutを使用して途中経過を表示する (KATAMINOを解くプログラムを作成する)

★前回の記事 yucatio.hatenablog.com 前回までで解けた場合のフィールドを表示しました。今回は途中の経過も表示します。 ピースが置けた時にフィールドを更新します。 途中経過の表示方法 途中経過を表示します。ピースが置けたときに画面を更新します。 画…

JavaScriptで値を指定して削除する(置かれていないピースの更新) (KATAMINOを解くプログラムを作成する)

★前回の記事 yucatio.hatenablog.com 続いてunPlacedPieceの更新をします。unPlacedPieceはまだ置かれていないピースの番号を格納しています。置かれたピースの番号をここから削除します。 実装 JavaScriptでは、引数に渡された値と同じ値を削除する関数は用…

JavaScriptで2次元配列の重複を取り除く (KATAMINOを解くプログラムを作成する)

★前回の記事 yucatio.hatenablog.com 前回までで8パターンの回転・反転パターンを作成することができましたが、いくつかのピースについては重複があります。例えばこちら↓ このピースの配列は、下記のようになってます。 [ [ [1,1,1], [1,0,1] ], [ [1,1], […

JavaScriptで2次元配列のコピーと配列の反転 (KATAMINOを解くプログラムを作成する)

★前回の記事 yucatio.hatenablog.com ピースの反転を行うために2次元配列の反転を行います。8パターンのスピンの作成については以下の記事を参照してください。 yucatio.hatenablog.com 各spinは0番を始めとして矢印の順番で生成します。 前回は0番のスピン…

JavaScriptで転置を実装する (KATAMINOを解くプログラムを作成する)

★前回の記事 yucatio.hatenablog.com ピースの回転、反転を行うために2次元配列の転置を行います。転置を行う理由については以下の記事を参照してください。 yucatio.hatenablog.com 各spinは0番を始めとして以下の順番で生成します。 はじめに0番目のスピン…

JavaScriptのnew Array(n)をmapしたいとき fillをはさむ理由

経緯 配列をオブジェクトで初期化したい場合、 new Array(3).fill({foo: "ふう", bar:"ばあ"}) というコードだと、全てのインデックスが同じオブジェクトを指してしまうので、 調べたら new Array(3).fill().map(() => ({foo: "ふう", bar: "ばあ"})) という…

JavaScriptで「○分前」「○時間前」「○日前」など現在時刻からのざっくりした時間経過を表示したい場合は、Moment.jsのfromNowを使う

やりたいこと Twitterのように、投稿日付を表示したい。「○分前」「○時間前」「○日前」など、現在時刻からの経過時間をざっくり表示したい。 moment.jsのfromNowでできる moment.jsのfromNowを使えば実現できます。 Time from now デフォルトの設定では以下…