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

//  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. js中的事件,内置对象,正则表达式

    [JS中的事件分类] 1.鼠标事件: click/dbclick/mouseover/mouseout/mousemove/mousedown/mouseup 2.键盘事件: keydown: 键盘按 ...

  2. Strom序列化机制

    Storm 中的 tuple可以包含任何类型的对象.由于Storm 是一个分布式系统,所以在不同的任务之间传递消息时Storm必须知道怎样序列化.反序列化消息对象. Storm 使用 Kryo库对对象 ...

  3. 2017最新技术java高级架构、千万高并发、分布式集群、架构师入门到精通视频教程

    * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩展. ...

  4. PHP中几个输出函数echo,print(),print_r(),sprintf(),var_dump()的区别

    1:echo:是语句不是函数,没有返回值,可输出多个变量值,不需要圆括号.不能输出数组和对象,只能打印简单类型(如int,string). 2:print:是语句不是函数,有返回值 1 ,只能输出一个 ...

  5. C/C++中的volatile究竟是什么鬼?

    将变量或对象声明为volatile类型后,每次对变量的访问都是从其内存直接读取.那什么时候对变量的访问不是从其内存读取的呢?一种常见的情况就是编译器开启了优化选项,这时候对变量的访问有可能就是从寄存器 ...

  6. 转载: C++ 获取文件夹下的所有文件名

    最近需要得到某个文件夹下所有文件名,于是就上网上查了查,得到如下的解决方案最多: 而且查到的最早的版本是这个:http://blog.csdn.net/cxf7394373/article/detai ...

  7. workday1

    前天是实习的第一天,现在补下感想 总的来说还是不错的,师兄很nice,师妹很羞涩,我很尴尬,我的交际能力还是有待提高(主要是普通话不标准~~~~(>_<)~~~~) 早上由华工C12穿梭到 ...

  8. angularjs directive (自定义标签解析)

    angularjs directive (自定义标签解析) 定义tpl <!-- 注意要有根标签 --> <div class="list list-inset" ...

  9. Linux配置LNMP环境(一)配置Nginx

    注意:配置版本nginx-1.12.0,使用虚拟机安装linux.教程中的下载地址可能有变化.注意(在您看本教程之前首先需要对linux的基本操作熟悉) 1.  先cd到/usr/local/src ...

  10. Luogu 1402 酒店之王(二分图最大匹配)

    Luogu 1402 酒店之王(二分图最大匹配) Description XX酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化.由于很多来住店的旅客有自己喜好的房间色调.阳光等,也有自 ...