//

//  ViewController.m

//  10-拼图

//

//  Created by mac on 15-5-9.

//  Copyright (c) 2015年itcast. All rights reserved.

//

#import"ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

}

/**

*判断tag位置的button是否有图片

*

*/

-(Boolean)isKong:(int)tag

{

if(tag <= 9 && tag >= 1)

{

//  - (UIView *)viewWithTag:(NSInteger)tag;

// @property(nonatomic,readonly,retain) UIImage  *currentBackgroundImage;

//取tag位置的button

UIButton *mybutton = (UIButton *)[self.view viewWithTag:tag];

//取button的背景图片

UIImage *myImage = mybutton.currentBackgroundImage;

//如果背景图片为空,则可以把周围的图片移动过去

if (myImage == nil) {

return YES;

}

return NO;

}

return NO;

}

/**

*移动

*/

-(void)remove:(int)tag toTag:(int)tag2

{

//取要移动到的位置button

UIButton *mybutton = (UIButton *)[self.view viewWithTag:tag2];

//取点击的button

UIButton *mybutton1 = (UIButton *)[self.view viewWithTag:tag];

//点击button的图片

UIImage *myImage = mybutton1.currentBackgroundImage;

//把图片赋值给空的button

[mybutton setBackgroundImage:myImage forState:normal];

//原先有图片的button背景图片赋值为空

[mybutton1 setBackgroundImage:nil forState:normal];

}

/**

*判断是否拼图成功

*/

-(void)success

{

int count = 0;

for (int i = 0; i

{

//取当前按钮的背景图片

UIButton *mybutton1 = (UIButton *)[self.view viewWithTag:i + 1];

UIImage *myImage = mybutton1.currentBackgroundImage;

//定义成功时该位置的图片

NSString *name = [NSString stringWithFormat:@"icon_%02d",i];

UIImage *image = [UIImage imageNamed:name];

if ([image isEqual:myImage])

{

count ++;

}

}

if (count == 8) {//r如果count为8说明拼图成功

UILabel *myLabel = (UILabel *)[self.view viewWithTag:22];

myLabel.alpha = 1;

//拼图成功后,所有按钮不可点

for (int j = 0; j

{

UIButton *mybutton1 = (UIButton *)[self.view viewWithTag:j + 1];

[mybutton1 setEnabled:NO];

}

}

}

- (IBAction)btn:(id)sender

{

//获取tag标记

int tag = (int)[sender tag];

//判断上面有没有图片

Boolean isUP =[self isKong:tag-3];

//判断下面有没有图片

Boolean isDown =[self isKong:tag+3];

//判断左面有没有图片

Boolean isLeft =[self isKong:tag-1];

//判断右面有没有图片

Boolean isRight =[self isKong:tag+1];

//移动

if (isUP)

{

[self remove:tag toTag:(tag - 3)];

}

else if (isDown)

{

[self remove:tag toTag:(tag + 3)];

}

else if(isLeft)

{

if (tag%3 == 1) {

return;

}

[self remove:tag toTag:(tag - 1)];

}

else if(isRight)

{

if (tag%3 == 0) {

return;

}

[self remove:tag toTag:(tag + 1)];

}

[self success];

}

@end

九宫格拼图android代码,九宫格拼图代码相关推荐

  1. android 九宫格封装,Android 实现九宫格、点击图片放大全屏浏览等

    live_icon.jpg 1370473-587d9058f76372fb.gif 说说我的实现思路: 逐渐掌握了Android开发套路,是时候自己去封装一些东西了.网上看了一些例子,感觉不是我想要 ...

  2. android九宫格菜单,Android实现九宫格 主界面应用列表效果

    本文需要添加/修改3个文件:main.xml.meunitem.xml.JAVA源代码. main.xml源代码如下,本身是个GirdView,用于装载Item: android:id="@ ...

  3. html九图拼图游戏代码,HTML5拼图游戏

    拼图游戏介绍 拼图游戏将一幅图片分割成若干拼块并将它们随机打乱顺序.当将所有拼块都放回原位置时,就完成了拼图(游戏结束). 在"游戏"中,单击滑块选择游戏难易,"容易&q ...

  4. mysql拼图游戏代码_C#拼图游戏编写代码(2)

    前言:在C#拼图游戏编写代码程序设计 之 C#实现<拼图游戏>(上),上传了各模块代码,而在本文中将详细剖析原理,使读者更容易理解并学习,程序有诸多问题,欢迎指出,共同学习成长! 正文: ...

  5. c#拼图碎片形状_C#拼图游戏编写代码

    本文设计了C#拼图游戏程序,供大家参考,具体内容如下 功能描述: 1.用户自定义上传图片 2.游戏难度选择:简单(3*3).一般(5*5).困难(9*9)三个级别 3.纪录完成步数 模块: 1.拼图类 ...

  6. Android微信九宫格图片展示控件

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/214 Android微信九宫格图片展示控件 半年前,公司产 ...

  7. java实现九宫格解锁_轻松实现Android自定义九宫格图案解锁

    Android实现九宫格图案解锁,自带将图案转化成数字密码的功能,代码如下: LockPatternView.java package com.jackie.lockpattern; import a ...

  8. android studio 九宫格,Android Studio 实现九宫格功能

    运行结果 1.图 2.动图 九个图标是设置的,你也可以设置4 * 4 = 16都可以. 3.分享个GIF动图的.exe 代码activity_main.xml item.xml MainActivit ...

  9. android ble mesh,Android 蓝牙Mesh组网代码详解

    文章目录前言Mesh组网基本理解扫描设备组网meshAddress添加与重连UUID连接登录修改信息控制与接收设备数据总结 前言 上面的几篇文章都是在说Android网络编程方面的内容,我本来就有打算 ...

  10. Android Studio中的代码格式快捷方式

    本文翻译自:Code formatting shortcut in Android Studio I have started developing with Android Studio . 我已经 ...

最新文章

  1. Android5.0之CoordinatorLayout的使用
  2. [WPF]静态资源(StaticResource)和动态资源(DynamicResource)
  3. python异步框架twisted_twisted是python实现的基于事件驱动的异步网络通信构架。
  4. yolov3权重_目标检测之 YOLOv3 (Pytorch实现)
  5. 旅游行业春节档期的大数据营销
  6. python分类算法的应用_Python基于sklearn库的分类算法简单应用示例
  7. element table根据条件隐藏复选框
  8. 养一台家庭轿车的年费是多少?有的工薪打工者为什么卖车?
  9. Marlin固件的欢迎界面
  10. 怀孕计算机在线,【怀孕天数计算器在线计算_怀孕天数计算器在线计算专题】- 天鹅到家...
  11. cad二次开发-C#-VS-镜像-判断用户当前是否已选择实体-将实体对象添加到模型空间-添加实体到块表记录-将块定义插入到模型空间
  12. C#网络TCP客户端的实现
  13. 【JavaScript】实现微信发消息-解决方案
  14. QT驾校科目考试系统——从实现到发布
  15. CentOS7-命令-创建用户(useradd)
  16. 渗透测试之破解密码(3)
  17. 亲完如何进行下一步_吻过女孩后,下一步怎么办?
  18. Windows 更新:服务堆栈更新
  19. 基于JAVA房屋租赁平台计算机毕业设计源码+系统+数据库+lw文档+部署
  20. step 文件在sw怎么编辑_solidworks不能编辑step文件吗

热门文章

  1. 构成计算机系统物理实体的是什么,什么构成计算机的物理实体
  2. CSS实现空心三角指示箭头
  3. gitbook转PDF或epub
  4. linux系统连接校园无线网卡,Linux连接校园网
  5. 微信小程序连接emqx服务器实现数据交互
  6. C++类和对象——设计一个长方形类
  7. 手把手教你建立私人数据检索库(二)
  8. SAP ADM100 学习笔记
  9. IAR下载: Failed to get cpu status after 4 retrie 的解决方法
  10. 自学Java day18 jvav反射专题 从jvav到架构师