15パズル 移動とクリア判定が完成
2019/5/11更新
PushPieceメソッドを縮小できないか、と考えていて
ある事に気が付きました。
16ポジションから押したピースを探して、
0番ピースと隣接してるか判断していたのですが、
0番から4方向に押したピースが有るかを判断した方が、
手数が少なくなるのでは? と思いつきました。
ただ、ポジションから判断すると結局の所、
16ポジションの処理が必要になるので変化ありません。
そこで、座標位置から読み取る事ができれば、なんとかなるかも
と言う考えに至りまして、少し整理してみる事にしました。
・0番ピースと横並びならY座標が同じになる
・0番ピースと縦並びならX座標が同じになる
・0番と押したピースが並ぶと、ピースのピッチは上下左右同じ
コードを考えてみます。
0番と押したピースのポジションは取得してるので、
それを元にX座標が同じかを判断するなら、
if (Xp[Add0] == Xp[AddP]){}
これで判断できそうです。
Y座標も同じ文でいけそうです。
あとは隣接してるかの判断ですが、
ピースのピッチを160で取っているので、
if (Yp[Add0] - 160 == Yp[AddP] || Yp[Add0] + 160 == Yp[AddP])
これを元にコードを作ると
//0番ピースと押したピースが縦並びか
if (Xp[Ad…