zoukankan      html  css  js  c++  java
  • 关灯游戏源码(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

    运行效果

  • 相关阅读:
    http简单demo
    启迪思维:循环链表
    数据表行列转换
    防止短时间内重复提交表单数据js约束
    ASP.NET2.0文件上传以及图片处理
    支付宝倒计时代码
    js 定时刷新页面
    C# 将cookiecontainer写到本地
    用C#生成随机中文汉字验证码的基本原理
    删除指定文件夹里的所有文件
  • 原文地址:https://www.cnblogs.com/qianLL/p/5256092.html
Copyright © 2011-2022 走看看