(KATAMINOを解くプログラムを作成する)KATAMINOを解くプログラム★前回の記事yucatio.hatenablog.comスタックからフィールドとスピン情報を取得することができたので、ピースが置けるか判定していきます。minEmptyのマスに重なるようにピースを置くのでした。minEmptyは、フィールドのピースが置かれていないマスのうち、1番上の行で1番左にあるマスです。置くスピンの一番上の左端とminEmptyを重ねます。これ以外のマスを重ねようとしてもすでにあるピースと重なってしまったり枠の外に出たりしてしまいます。(ただしスピンの1番上の左端を重ねたからと言って必ずしも他のピースと重ならないわけではないです)minEmptyと重なるようにピースを置いた例↓フィールドからはみ出していて、他のピースとも重なっているminEmptyと重なるようにピースを置いた例↓フィールド内に収まっていて、他のピースとも重なっていない幸いな事に、spinの1番上の1番左にあたる場所はspin[0]です。これは2次元配列からリストを作成した時に、1番上の列の左からリストにしていったためです。スピンをminEmptyと重なるように移動します。x方向(下方向)にはminEmpty.xぶん移動します。spin[0].yぶん移動します。実装コードにしていきます。spinの移動量をoffsetという変数に格納します。},}pieceの各値にoffsetを足したものが実際のピースが置かれる場所になります。