就这些代码敲了我两个小时。。。。。。

//  ViewController.m

//  扫雷

//

//  Created by 晚起的蚂蚁 on 2017/3/22.

//  Copyright © 2017年 晚起的蚂蚁. All rights reserved.

//

#define Width [UIScreen mainScreen].bounds.size.width

#define Height [UIScreen mainScreen].bounds.size.height

#define NUM           //格子边长个数

#define NUMRED       //雷的个数

#import "ViewController.h"

@interface ViewController ()

{

UIImageView* imageView;

NSMutableArray* dataSource;//雷的位置

NSMutableArray* allArr;    //所有按钮的数字

}

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

self.view.backgroundColor=[UIColor whiteColor];

[self createImageView];

[self createButton];

[self createData];

[self numberOfRedBtn];

}

//创建背景视图

-(void)createImageView{

, Width, Width)];

imageView.image=[UIImage imageNamed:@""];

imageView.userInteractionEnabled=YES;

imageView.backgroundColor=[UIColor greenColor];

[self.view addSubview:imageView];

, , )];

imageViewHeader.image=[UIImage imageNamed:@"0fd7eeeee49905d8e4d7f1b02b937f40.png"];

[self.view addSubview:imageViewHeader];

, , )];

imageViewFoot.image=[UIImage imageNamed:@"a10e9fc0ccdc64360c8a90f97918b0a3.png"];

[self.view addSubview:imageViewFoot];

}

//创建按钮

-(void)createButton{

CGFloat btnHeight=imageView.frame.size.width/NUM;

; i<NUM; i++) {

; j<NUM; j++) {

UIButton* btn=[UIButton buttonWithType:UIButtonTypeCustom];

btn., btnHeight-);

btn.;

[btn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];

[btn.];

btn.layer.borderColor = [UIColor grayColor].CGColor;

btn.backgroundColor=[UIColor brownColor];

[imageView addSubview:btn];

}

}

}

//按钮点击事件

-(void)btnAction:(UIButton*)sender{

; i<dataSource.count; i++) {

if(sender.tag==[dataSource[i] intValue]){

NSArray* arr=[imageView subviews];

; k<arr.count; k++) {

];

]) {

btn.backgroundColor=[UIColor redColor];

}else{

[btn setTitle:allArr[k] forState:UIControlStateNormal];

btn.backgroundColor=[UIColor blueColor];

}

}

return;

}

}

] forState:UIControlStateNormal];

sender.backgroundColor=[UIColor blueColor];

}

//随机分布雷

-(void)createData{

dataSource=[NSMutableArray new];

int numB=NUM*NUM;

;

) {

number=(;

;

) {

[dataSource addObject:[NSString stringWithFormat:@"%d",number]];

}else if(dataSource.count<NUMRED){

for (NSString* str in dataSource) {

if ([str intValue]==number) break;

else time++;

if (time==dataSource.count) {

[dataSource addObject:[NSString stringWithFormat:@"%d",number]];

break;

}

}

}else{

break;

}

}

}

//非雷区的数字

-(void)numberOfRedBtn{

allArr=[NSMutableArray new];

; i<NUM*NUM; i++) {

[allArr addObject:@"0"];

}

//按钮的坐标

;

;

;

NSArray* btnArr=[imageView subviews];

for (UIButton* btn in btnArr) {

if ((btn.backgroundColor!=[UIColor redColor])) {

coordinateX=(btn.)%NUM;

coordinateY=(btn.)/NUM;

//左

) {

]) {

number++;

}

}else{

&&coordinateY<) {

)+(coordinateY+)*]) {

number++;

}

)+(coordinateY-)*]) {

number++;

}

}else{

)+(coordinateY+)*]) {

number++;

}

}

}

//右

) {

]) {

number++;

}

}else{

&&coordinateY<) {

)+(coordinateY+)*]) {

number++;

}

)+(coordinateY-)*]) {

number++;

}

}else{

)+(coordinateY-)*]) {

number++;

}

}

}

//上

) {

)*]) {

number++;

}

}else{

&&coordinateX<) {

)*)+]) {

number++;

}

)*)+]) {

number++;

}

}else{

)*)+]) {

number++;

}

}

}

//下

) {

)*]) {

number++;

}

}else{

&&coordinateX<) {

)*)+]) {

number++;

}

)*)+]) {

number++;

}

}else{

)*)+]) {

number++;

}

}

}

//中间按钮的斜角

&&coordinateY<&&coordinateX>&&coordinateX<) {

)*)+]) {

number++;

}

)*)+]) {

number++;

}

)*)+]) {

number++;

}

)*)+]) {

number++;

}

}

//将数据存入数组

NSString* numberStr=[NSString stringWithFormat:@"%ld",number];

//[btn setTitle:numberStr forState:UIControlStateNormal];

]=numberStr;

number=;

}

}

}

//判断是该按钮是否为雷

-(BOOL)tagIsEqulTag:(NSInteger)tag{

; i<dataSource.count; i++) {

if(tag==[dataSource[i] intValue]){

return YES;

}

}

return NO;

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

}

@end

ios扫雷的更多相关文章

  1. iOS 扫雷游戏

    代码地址如下:http://www.demodashi.com/demo/11254.html 1.项目结构图 Viewcontroller:扫雷逻辑代码 LevelModel:扫雷难度选择代码 2. ...

  2. iOS - 适配 iOS 13 之工兵连扫雷

    iOS 13 支持适配的机型 目前最新 iPhone 11.iPhone 11 Pro和iPhone 11 Pro Max iPhone X.iPhone XR.iPhone XS.iPhone XS ...

  3. 神奇的NOIP模拟赛 T1 LGTB 玩扫雷

    LGTB 玩扫雷 在一个n m 的棋盘上,有位置上有雷(用“*” 表示),其他位置是空地(用“.” 表示).LGTB 想在每个空地上写下它周围8 个方向相邻的格子中有几个雷.请帮助他输出写了之后的棋盘 ...

  4. iOS开发环境C语言基础 数组 函数

    1 求数组元素的最大值 1.1 问题 创建程序,实现查询数组中最大值的功能,需求为:创建一个长度为10的数组,数组内放置10个0~99之间(包含0,包含99)的随机数作为数组内容,要求查询出数组中的最 ...

  5. (史上最全的ios源码汇总)

    按钮类         按钮 Drop Down Control         http://www.apkbus.com/android-106661-1-1.html 按钮-Circular M ...

  6. 2015最新iOS学习线路图

    iOS是由苹果公司开发的移动操作系统,以xcode为主要开发工具,具有简单易用的界面.令人惊叹的功能,以及超强的稳定性,已经成为iPhone.iPad 和iPod touch 的强大基础:iOS 内置 ...

  7. HDU 5965(三行扫雷 dp)

    题意是在一个 3 行 n 列的图上进行扫雷,中间一行没有雷,且中间一行的每一格都会显示周围的雷数,问根据已知的雷数在上下两行设置地雷的方法数. 分析知每一列所填雷数的和与周围的雷数有关,但每列具体的填 ...

  8. HDU 5965 扫雷

    扫雷游戏是晨晨和小璐特别喜欢的智力游戏,她俩最近沉迷其中无法自拔. 该游戏的界面是一个矩阵,矩阵中有些格子中有一个地雷,其余格子中没有地雷. 游戏中,格子可能处于己知和未知的状态.如果一个己知的格子中 ...

  9. 【BZOJ1088】扫雷(递推)

    [BZOJ1088]扫雷(递推) 题面 BZOJ 题解 忽然发现这就是一道逗逼题. 只需要枚举一下第一个是什么,后面都能够推出来了.. #include<iostream> using n ...

随机推荐

  1. 【2017年最新】iOS面试题及答案

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px "PingFang SC Semibold"; color: #46464 ...

  2. 关于php的一些安全知识

    绝不要以明文形式显示或发送密码.即使是对密码的所有者也应该这样.如果你需要 "忘记密码" 的功能,可以随机生成一个新的 一次性的(这点很重要)密码,然后把这个密码发送给用户 你希望 ...

  3. 实现AOP功能的封装与配置的小框架

    内容 java基础巩固笔记 - 实现AOP功能的封装与配置的小框架 设计(目录): XXX = java.util.ArrayList中 代码 Advice接口 MyAdvice类 BeanFacto ...

  4. OpenCV学习1-----打开摄像头并在画面上添加水印

    一直对视频或者图像添加水印很感兴趣,查找资料后用OpenCV尝试了一下. 记录下来. 1.首先是打开摄像头. 找到OpenCV官方文档给出的例子. 例子中实现的是,打开摄像头,并对画面进行高斯滤波,使 ...

  5. Linux下配置tomcat+apr+native应对高并发

    摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服 ...

  6. C# 定时器传值问题详解

    //传参数定时器 private static System.Timers.Timer aTimer;  Main(ApprovalID); public static void Main(int A ...

  7. 一个Ruby静态代码分析器 rubocop

    A Ruby static code analyzer, based on the community Ruby style guide. http://rubocop.readthedocs.io ...

  8. VB6之WebBrowser控件

    UI短手或者GDI+用烦的童鞋可以借用WebBrowser打造漂亮的程序界面,只需要下载一个好看点的html代码就够了. 引用: Microsoft Html Object Library 部件: M ...

  9. eclipse 常用快捷键 及 windows快捷键

    Eclipse常用快捷键 打开Eclipse快捷键的快捷键 Ctrl+Shift+L 快捷键 描述 原英文描述 Ctrl+Shift+P 定位到光标所在处的括号的另一半括号的位置 Go to Matc ...

  10. Jenkins设置Master/Slave

    说明:通过master/slave模式,可以在master节点上统一管理其他slave节点. 下面说明一步步实现master/slave模式. 第一步:以管理员登录jenkins.点击"系统 ...