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

    运行效果

  • 相关阅读:
    Kafka 设计思路
    DBeaver——超好用可视化数据库!(墙裂推荐(づ ̄3 ̄)づ╭❤~)
    蓝图BluePrint——基于Flask框架
    SkyWalking全链路监控java项目
    win10创建ssh公钥
    mysql通过列名搜索出表名
    使用nodejs判断前端性能
    golang 栈、堆分配分析及CPU、内存性能情况
    UML图-(用例图、类图、状态图、活动图、时序图)
    linux参数调优
  • 原文地址:https://www.cnblogs.com/qianLL/p/5256092.html
Copyright © 2011-2022 走看看