您好,爲iPhone開發拼圖遊戲。iPhone拼圖遊戲完成檢測
在這裏,我幾乎完成了應用程序,除了發現拼圖是否完整。
這裏每一塊是UIImageView
,它有獨特的標籤。
我嘗試過使用xy座標,但它沒有用,因爲用戶可以從屏幕的任何位置開始修復這個難題。
那麼,任何想法如何檢測圖像是否安排正確?
編輯:非常感謝所有最後我使用座標來完成它。通過追蹤位置和標籤。
您好,爲iPhone開發拼圖遊戲。iPhone拼圖遊戲完成檢測
在這裏,我幾乎完成了應用程序,除了發現拼圖是否完整。
這裏每一塊是UIImageView
,它有獨特的標籤。
我嘗試過使用xy座標,但它沒有用,因爲用戶可以從屏幕的任何位置開始修復這個難題。
那麼,任何想法如何檢測圖像是否安排正確?
編輯:非常感謝所有最後我使用座標來完成它。通過追蹤位置和標籤。
假設你有某種'捕捉到網格'的機制,一旦它靠得很近(就像一個真正的拼圖一樣會有效地發生),將每個部件精確地放到正確的位置。假設這被定義爲每個片段的UIImageView的原點的特定x,y座標。
然後,當每件作品位於正確的位置(對齊它的位置)時,爲該作品設置一個布爾「inPlace」爲YES。
當所有作品的'inPlace'的值爲YES時,拼圖就完成了。
謝謝我使用了協調概念,但不是以你在這裏指定的方式 – nik
什麼用的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
沿着這些線路的東西應該做的伎倆!
在不規則的圖像概念,這不會鍛鍊 – nik
看看我的問題在這裏:Check how close UILabels are to each other
是一樣的,除了我問標籤,但你可以嘗試使用與圖像。我很確定有不同的翻譯方案
我試過使用xy座標,但它沒有用,因爲用戶可以從屏幕上的任何位置開始修復它。
您必須選擇一個「基礎」拼圖,併爲其他人獲取相對座標。完成檢查 - 每件作品保持存儲的相對位置等於當前。似乎,那就是全部。
另一種情況,如果你想修復拼圖開始隨機件和部分收集(如撕碎的圖像或字母 - 件有不同的形狀)。在這種情況下,對於每個拼圖,你必須存儲最近的鄰居id和他們的相對位置。如果有兩個相鄰片段 - 加入它們。要贏的條件 - 所有棋子的所有鄰居都處於相對位置。
這是什麼問題? –
如何查找用戶是否在拼圖遊戲中正確排列圖像。 – nik
不知道如何將這些碎片連接在一起,這很難提供幫助。嘗試發佈你嘗試過的一些代碼。 –