關燈游戲源碼(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

運行效果


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com