关灯游戏源码(iOS)
就是点一下灯 它本身和周围4盏灯会变色
ViewController.m文件
#import "ViewController.h" #import "UIView+change.h" @interface ViewController () @property(assign,nonatomic)int totalColums; @property(assign,nonatomic)NSInteger tag; @property(strong,nonatomic)UIButton *btn; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; CGFloat height=50; CGFloat width=50; self.view.tag=1000; self.totalColums=5; CGFloat marginX=(self.view.frame.size.width-width*self.totalColums)/(self.totalColums+1); CGFloat marginY=30; for (int i=0; i<45; i++) { int row=i/self.totalColums; int col=i%self.totalColums; CGFloat appX=marginX+col*(width+marginX); CGFloat appY=marginY+row*(height+marginY); UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(appX, appY, width, height)]; btn.backgroundColor=[UIColor redColor]; [btn addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchDown]; btn.tag=i; [self.view addSubview:btn]; } } /** * 点击事件 * * */ -(void)onClick:(UIButton *)btn{ [btn change]; self.btn=btn; self.tag=btn.tag; [self lie]; [self sigiao]; [self hang]; [self qita]; } /** * 最左边一列和最右边一列 */ -(void)lie{ if ((self.tag%self.totalColums==0||self.tag%self.totalColums==4)&&(self.tag/self.totalColums!=0&&self.tag/self.totalColums!=8)) { [[self.view viewWithTag:self.tag+self.totalColums] change]; [[self.view viewWithTag:self.tag-self.totalColums] change]; if (self.tag%self.totalColums==0) { [[self.view viewWithTag:self.tag+1] change]; }else if(self.tag%self.totalColums==4){ [[self.view viewWithTag:self.tag-1] change]; } } } /** * 最上面一行和最下面一行 */ -(void)hang{ if ((self.tag/self.totalColums==0||self.tag/self.totalColums==8)&&(self.tag%self.totalColums!=0&&self.tag%self.totalColums!=4)) { [[self.view viewWithTag:self.tag-1] change]; [[self.view viewWithTag:self.tag+1] change]; if (self.tag/self.totalColums==0) { [[self.view viewWithTag:self.tag+self.totalColums] change]; }else if(self.tag/self.totalColums==8){ [[self.view viewWithTag:self.tag-self.totalColums] change]; } } } /** * 四个角 */ -(void)sigiao{ if (self.tag==0) { [[self.view viewWithTag:self.tag+1] change]; [[self.view viewWithTag:self.tag+self.totalColums] change]; }else if (self.tag==4){ [[self.view viewWithTag:self.tag-1] change]; [[self.view viewWithTag:self.tag+self.totalColums] change]; }else if(self.tag==45-self.totalColums){ [[self.view viewWithTag:self.tag+1] change]; [[self.view viewWithTag:self.tag-self.totalColums] change]; }else if(self.tag==44){ [[self.view viewWithTag:self.tag-1] change]; [[self.view viewWithTag:self.tag-self.totalColums] change]; } } /** * 其他的 */ -(void)qita{ if (self.tag/self.totalColums!=0&&self.tag/self.totalColums!=8&&self.tag%self.totalColums!=0&&self.tag%self.totalColums!=4) { [[self.view viewWithTag:self.tag-self.totalColums]change]; [[self.view viewWithTag:self.tag-1]change]; [[self.view viewWithTag:self.tag+self.totalColums]change]; [[self.view viewWithTag:self.tag+1] change]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
#import "ViewController.h" #import "UIView+change.h" @interface ViewController () @property(assign,nonatomic)int totalColums; @property(assign,nonatomic)NSInteger tag; @property(strong,nonatomic)UIButton *btn; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; CGFloat height=50; CGFloat width=50; self.view.tag=1000; self.totalColums=5; CGFloat marginX=(self.view.frame.size.width-width*self.totalColums)/(self.totalColums+1); CGFloat marginY=30; for (int i=0; i<45; i++) { int row=i/self.totalColums; int col=i%self.totalColums; CGFloat appX=marginX+col*(width+marginX); CGFloat appY=marginY+row*(height+marginY); UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(appX, appY, width, height)]; btn.backgroundColor=[UIColor redColor]; [btn addTarget:self action:@selector(onClick:) forControlEvents:UIControlEventTouchDown]; btn.tag=i; [self.view addSubview:btn]; } } /** * 点击事件 * * */ -(void)onClick:(UIButton *)btn{ [btn change]; self.btn=btn; self.tag=btn.tag; [self lie]; [self sigiao]; [self hang]; [self qita]; } /** * 最左边一列和最右边一列 */ -(void)lie{ if ((self.tag%self.totalColums==0||self.tag%self.totalColums==4)&&(self.tag/self.totalColums!=0&&self.tag/self.totalColums!=8)) { [[self.view viewWithTag:self.tag+self.totalColums] change]; [[self.view viewWithTag:self.tag-self.totalColums] change]; if (self.tag%self.totalColums==0) { [[self.view viewWithTag:self.tag+1] change]; }else if(self.tag%self.totalColums==4){ [[self.view viewWithTag:self.tag-1] change]; } } } /** * 最上面一行和最下面一行 */ -(void)hang{ if ((self.tag/self.totalColums==0||self.tag/self.totalColums==8)&&(self.tag%self.totalColums!=0&&self.tag%self.totalColums!=4)) { [[self.view viewWithTag:self.tag-1] change]; [[self.view viewWithTag:self.tag+1] change]; if (self.tag/self.totalColums==0) { [[self.view viewWithTag:self.tag+self.totalColums] change]; }else if(self.tag/self.totalColums==8){ [[self.view viewWithTag:self.tag-self.totalColums] change]; } } } /** * 四个角 */ -(void)sigiao{ if (self.tag==0) { [[self.view viewWithTag:self.tag+1] change]; [[self.view viewWithTag:self.tag+self.totalColums] change]; }else if (self.tag==4){ [[self.view viewWithTag:self.tag-1] change]; [[self.view viewWithTag:self.tag+self.totalColums] change]; }else if(self.tag==45-self.totalColums){ [[self.view viewWithTag:self.tag+1] change]; [[self.view viewWithTag:self.tag-self.totalColums] change]; }else if(self.tag==44){ [[self.view viewWithTag:self.tag-1] change]; [[self.view viewWithTag:self.tag-self.totalColums] change]; } } /** * 其他的 */ -(void)qita{ if (self.tag/self.totalColums!=0&&self.tag/self.totalColums!=8&&self.tag%self.totalColums!=0&&self.tag%self.totalColums!=4) { [[self.view viewWithTag:self.tag-self.totalColums]change]; [[self.view viewWithTag:self.tag-1]change]; [[self.view viewWithTag:self.tag+self.totalColums]change]; [[self.view viewWithTag:self.tag+1] change]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
类目文件UIView+change.h
#import <UIKit/UIKit.h> @interface UIView (change) /** * 变颜色 */ -(void)change; @end
UIView+change.m
#import "UIView+change.h" @implementation UIView (change) -(void)change{ if (self.backgroundColor==[UIColor redColor]) { self.backgroundColor=[UIColor blueColor]; }else{ self.backgroundColor=[UIColor redColor]; } } @end
运行效果