IDでピースにラベルを付けるのはどうですか
各ピースには次のようなものがあります
JigsawPiece.Id = 1
そして、このようにラベルを付けます(3x3パズルの場合)。
-------------
| 0 | 1 | 2 |
-------------
| 3 | 4 | 5 |
-------------
| 6 | 7 | |
-------------
これらのピースを2D配列に追加します
class JigsawPuzzle:
array[3][3] JigsawPiece;
そして最後に、数が1つ増えているかどうかを調べて、解決策に到達したかどうかを確認します。
check_id == 1
for int i = 0; i<numrows ; i++
for int j = 0; j<numcols; j++{
if i==numrows - 1 and j==numcols-1: break #last one, which should be empty, skip it
solved = jigsawpieces[col][row].id == check_id
check_id += 1
if !solved: break;
}
if solved: You solved it!
私はObjCを知らないので、すべてが擬似コードです
これらの線に沿った何かがトリックを行う必要があります!