ios 制作手机端拼图游戏及衍生的其他内容

本拼图游戏包含调节三档的难度, 除了默认的图片外,还能够选取相册中的图片或者直接拍下图片进行游戏等。

此文为博主原创技术总结, 转载注明出处:http://blog.csdn.net/luckydog2479/article/details/17713477

首先说一下使用的版本

Xcode版本:Version 5.0.2 (5A3005)

iPhone版本:iPhone4S 7.0.4(11B554a)

本文主要涉及内容为

1.图片的分解,将一张图片按拼图需求分解为N*M个部分

2.图片文件的压缩,这里的压缩包含文件大小及像素等,由于设备的先进性,拍摄的照片文件过大,直接使用会导致内存不足,所以使用压缩比为1:5,并且将像素缩到320*(480-64)之内

3.排序,此处对拼图排序,在过程中规避了无解的情况,在下文中会详细提到


以下开始正文内容

1.图片分解部分,使用

CGImageRef CGImageCreateWithImageInRect(CGImageRef image, CGRect rect)

image为总图片,rect为分解出的图片像素,返回类型为 CGImageRef, 需要使用

+ (UIImage *)imageWithCGImage:(CGImageRef)cgImage;

转化为UIImage


2.图片文件压缩,在保存图片文件时,如果保存成JPG文件可以使用

NSData *UIImageJPEGRepresentation(UIImage *image,CGFloat compressionQuality);

compressionQuality 为图片压缩比例,为1的时候压缩最小,为0的时候压缩最大


3.拼图排序

关于排序这部分,还需要感谢 邪魔统夜 给出的灵感,逆推答案的确是一个办法,不会存在无解的情况,并且可以获取一条正确解(并不一定是最优解),在这里博主并没有使用逆推这个方法,而是使用逆序数的奇偶性来判断的


博主在之前对于拼图的认识并不是很丰富,很不擅长,并不知道拼图原来存在无解的情况

例如 2 * 2 的拼图,如下的情况,0为空白位的话,不能移动成第一行0,1,第二行2,3

10
32
(无解)


参照http://blog.csdn.net/tailzhou/article/details/3002442

获取方法,只要将0位即空白位移到左上角,然后将其转为数列,然后判断奇偶性即可得知是否有解


拼图源码下载地址: http://download.csdn.net/detail/luckydog2479/6792501

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值