iPhone拼图游戏完成检测

时间:2012-10-11 12:49:38

标签: ios uiimageview coordinates

您正在为iPhone开发拼图游戏。

在这里我几乎完成了应用程序,除了找到拼图是否完整。

这里每件都是UIImageView,它有唯一的标签。

我尝试使用x y坐标,但没有用,因为用户可以从屏幕上的任何位置开始修复拼图。

那么,任何想法如何检测图像是否正确排列?

编辑:非常感谢所有人终于使用了坐标。通过跟踪位置和标签。

4 个答案:

答案 0 :(得分:1)

据推测,你有一种“对齐网格”机制,一旦它接近就会将每一块精确地放入正确的位置(就像真正的拼图一样)。假设这被定义为UIImageView原点的特定x,y坐标。

然后,当每个棋子都处于正确的位置(对齐它的位置)时,将该棋子的布尔'inPlace'设置为YES。

当所有作品的'inPlace'值为YES时,拼图完成。

答案 1 :(得分:0)

用id's

标记作品怎么样?

每件都有类似

的东西
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

这些方面的东西应该可以解决问题!

答案 2 :(得分:0)

点击此处查看我的问题:Check how close UILabels are to each other

它是相同的,除了我询问标签,但你可以尝试使用它与图像。我很确定有不同的翻译方案

答案 3 :(得分:0)

  

我尝试使用x y坐标,但没有用,因为用户可以从屏幕的任何位置开始修复它。

您必须选择一个“基础”拼图,并为其他拼图获取相对坐标。完成检查 - 每件都保持存储的相对位置等于当前。似乎,就是这样。

另一种情况,如果你想修复拼图开始随机片段并按部分收集(如撕开的图像或字母 - 片段有不同的形状)。在这种情况下,对于每个拼图,您必须存储最近邻居ID和他们的相对位置。如果有两个相邻的部分 - 加入它们。获胜的条件 - 所有作品的所有邻居都在相对的位置。