1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 arr=[[NSMutableArray alloc]initWithCapacity:16]; 5 6 for (int i=0; i<4; i++) { 7 for (int j=0; j<4; j++) { 8 UIButton* btn=[[UIButton alloc]initWithFrame:CGRectMake(j*60+10, i*60+100, 40, 40)]; 9 btn.backgroundColor=[UIColor lightGrayColor]; 10 [btn addTarget:self action:@selector(btn:) forControlEvents:UIControlEventTouchUpInside]; 11 12 [self.view addSubview:btn]; 13 14 [arr addObject:btn]; 15 } 16 } 17 18 19 } 20 -(void) btn:(UIButton*)btn{ 21 int i=0; 22 for (;i<16;i++) { 23 if (btn==arr[i]) { 24 break; 25 } 26 } 27 //判断位置,如果点击按钮在右边缘则不让i+1位置的按钮判断关灯与否 28 UIButton* btn1=[UIButton new]; 29 if ((i+1)%4!=0) { 30 btn1=arr[i+1]; 31 } 32 //判断位置,如果点击的位置在左边缘则不让i-1位置的按钮判断关灯与否 33 UIButton* btn2=[UIButton new]; 34 if ((i+1)%4!=1) { 35 btn2=arr[i-1]; 36 } 37 //判断位置,如果点击的位置在第一行,则不能判断i-4位置的按钮关灯与否,因为i-4没按钮可判断 38 UIButton* btn3=[UIButton new]; 39 if (i>=4) { 40 btn3=arr[i-4]; 41 } 42 //判断位置,如果点击的位置在最后一行,则不能判断i+4位置的按钮关灯与否,因为i+4没按钮可判断 43 UIButton* btn4=[UIButton new]; 44 if (i<12) { 45 btn4=arr[i+4]; 46 } 47 48 NSArray* arr1=@[btn,btn1,btn2,btn3,btn4]; 49 for (i=0; i<5;i++) { 50 UIButton* tampButton=arr1[i]; 51 52 if (tampButton.backgroundColor!= [UIColor yellowColor]) { 53 tampButton.backgroundColor=[UIColor yellowColor]; 54 } 55 else { 56 tampButton.backgroundColor=[UIColor lightGrayColor]; 57 } 58 59 } 60 61 }