2012-10-11 62 views
1

您好,爲iPhone開發拼圖遊戲。iPhone拼圖遊戲完成檢測

在這裏,我幾乎完成了應用程序,除了發現拼圖是否完整。

這裏每一塊是UIImageView,它有獨特的標籤。

我嘗試過使用xy座標,但它沒有用,因爲用戶可以從屏幕的任何位置開始修復這個難題。

那麼,任何想法如何檢測圖像是否安排正確?

編輯:非常感謝所有最後我使用座標來完成它。通過追蹤位置和標籤。

+1

這是什麼問題? –

+0

如何查找用戶是否在拼圖遊戲中正確排列圖像。 – nik

+0

不知道如何將這些碎片連接在一起,這很難提供幫助。嘗試發佈你嘗試過的一些代碼。 –

回答

1

假設你有某種'捕捉到網格'的機制,一旦它靠得很近(就像一個真正的拼圖一樣會有效地發生),將每個部件精確地放到正確的位置。假設這被定義爲每個片段的UIImageView的原點的特定x,y座標。

然後,當每件作品位於正確的位置(對齊它的位置)時,爲該作品設置一個布爾「inPlace」爲YES。

當所有作品的'inPlace'的值爲YES時,拼圖就完成了。

+0

謝謝我使用了協調概念,但不是以你在這裏指定的方式 – nik

0

什麼用的ID

每片標籤的作品有類似

JigsawPiece.Id = 1 

,並標識它們像這樣(爲一個3x3拼圖);

------------- 
| 0 | 1 | 2 | 
------------- 
| 3 | 4 | 5 | 
------------- 
| 6 | 7 | | 
------------- 

在一個二維數組

class JigsawPuzzle: 
    array[3][3] JigsawPiece; 

添加這些作品最後檢查是否通過查看達成解決辦法,如果數字是由一個增加。

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

沿着這些線路

的東西應該做的伎倆!

+0

在不規則的圖像概念,這不會鍛鍊 – nik

0

我試過使用xy座標,但它沒有用,因爲用戶可以從屏幕上的任何位置開始修復它。

您必須選擇一個「基礎」拼圖,併爲其他人獲取相對座標。完成檢查 - 每件作品保持存儲的相對位置等於當前。似乎,那就是全部。

另一種情況,如果你想修復拼圖開始隨機件和部分收集(如撕碎的圖像或字母 - 件有不同的形狀)。在這種情況下,對於每個拼圖,你必須存儲最近的鄰居id和他們的相對位置。如果有兩個相鄰片段 - 加入它們。要贏的條件 - 所有棋子的所有鄰居都處於相對位置。