ios扫雷

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

//  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 10          //格子边长个数

#define NUMRED 20       //雷的个数

#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{

imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, Height-Width-100, Width, Width)];

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

imageView.userInteractionEnabled=YES;

imageView.backgroundColor=[UIColor greenColor];

[self.view addSubview:imageView];

UIImageView* imageViewHeader=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, Width, Height-Width-100)];

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

[self.view addSubview:imageViewHeader];

UIImageView* imageViewFoot=[[UIImageView alloc]initWithFrame:CGRectMake(0, Height-100, Width, 100)];

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

[self.view addSubview:imageViewFoot];

}

//创建按钮

-(void)createButton{

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

for (int i=0; i<NUM; i++) {

for (int j=0; j<NUM; j++) {

UIButton* btn=[UIButton buttonWithType:UIButtonTypeCustom];

btn.frame=CGRectMake(btnHeight*j, btnHeight*i, btnHeight-1, btnHeight-1);

btn.tag=NUM*i+j+1;

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

[btn.layer setBorderWidth:3];

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

btn.backgroundColor=[UIColor brownColor];

[imageView addSubview:btn];

}

}

}

//按钮点击事件

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

for (int i=0; i<dataSource.count; i++) {

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

NSArray* arr=[imageView subviews];

for (int k=0; k<arr.count; k++) {

UIButton* btn=[imageView viewWithTag:k+1];

if ([self tagIsEqulTag:k+1]) {

btn.backgroundColor=[UIColor redColor];

}else{

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

btn.backgroundColor=[UIColor blueColor];

}

}

return;

}

}

[sender setTitle:allArr[sender.tag-1] forState:UIControlStateNormal];

sender.backgroundColor=[UIColor blueColor];

}

//随机分布雷

-(void)createData{

dataSource=[NSMutableArray new];

int numB=NUM*NUM;

int number=0;

while (1) {

number=(arc4random()%numB)+1;

int time=0;

if (dataSource.count==0) {

[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];

for (int i=0; i<NUM*NUM; i++) {

[allArr addObject:@"0"];

}

//按钮的坐标

CGFloat coordinateX=0;

CGFloat coordinateY=0;

NSInteger number=0;

NSArray* btnArr=[imageView subviews];

for (UIButton* btn in btnArr) {

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

coordinateX=(btn.tag-1)%NUM;

coordinateY=(btn.tag-1)/NUM;

//左

if (coordinateX>0) {

if ([self tagIsEqulTag:btn.tag-1]) {

number++;

}

}else{

if (coordinateY>0&&coordinateY<9) {

if ([self tagIsEqulTag:(coordinateX+1)+(coordinateY+1)*NUM+1]) {

number++;

}

if ([self tagIsEqulTag:(coordinateX+1)+(coordinateY-1)*NUM+1]) {

number++;

}

}else{

if ([self tagIsEqulTag:(coordinateX+1)+(coordinateY+1)*NUM+1]) {

number++;

}

}

}

//右

if (coordinateX<9) {

if ([self tagIsEqulTag:btn.tag+1]) {

number++;

}

}else{

if (coordinateY>0&&coordinateY<9) {

if ([self tagIsEqulTag:(coordinateX-1)+(coordinateY+1)*NUM+1]) {

number++;

}

if ([self tagIsEqulTag:(coordinateX-1)+(coordinateY-1)*NUM+1]) {

number++;

}

}else{

if ([self tagIsEqulTag:(coordinateX-1)+(coordinateY-1)*NUM+1]) {

number++;

}

}

}

//上

if (coordinateY>0) {

if ([self tagIsEqulTag:(coordinateY-1)*NUM+coordinateX+1]) {

number++;

}

}else{

if (coordinateX>0&&coordinateX<9) {

if ([self tagIsEqulTag:(coordinateY+1)*NUM+(coordinateX-1)+1]) {

number++;

}

if ([self tagIsEqulTag:(coordinateY+1)*NUM+(coordinateX+1)+1]) {

number++;

}

}else{

if ([self tagIsEqulTag:(coordinateY+1)*NUM+(coordinateX+1)+1]) {

number++;

}

}

}

//下

if (coordinateY<9) {

if ([self tagIsEqulTag:(coordinateY+1)*NUM+coordinateX+1]) {

number++;

}

}else{

if (coordinateX>0&&coordinateX<9) {

if ([self tagIsEqulTag:(coordinateY-1)*NUM+(coordinateX-1)+1]) {

number++;

}

if ([self tagIsEqulTag:(coordinateY-1)*NUM+(coordinateX+1)+1]) {

number++;

}

}else{

if ([self tagIsEqulTag:(coordinateY-1)*NUM+(coordinateX-1)+1]) {

number++;

}

}

}

//中间按钮的斜角

if (coordinateY>0&&coordinateY<9&&coordinateX>0&&coordinateX<9) {

if ([self tagIsEqulTag:(coordinateY-1)*NUM+(coordinateX-1)+1]) {

number++;

}

if ([self tagIsEqulTag:(coordinateY-1)*NUM+(coordinateX+1)+1]) {

number++;

}

if ([self tagIsEqulTag:(coordinateY+1)*NUM+(coordinateX-1)+1]) {

number++;

}

if ([self tagIsEqulTag:(coordinateY+1)*NUM+(coordinateX+1)+1]) {

number++;

}

}

//将数据存入数组

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

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

allArr[btn.tag-1]=numberStr;

number=0;

}

}

}

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

-(BOOL)tagIsEqulTag:(NSInteger)tag{

for (int i=0; i<dataSource.count; i++) {

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

return YES;

}

}

return NO;

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

}

@end

时间: 2024-11-03 22:25:13

ios扫雷的相关文章

2015最新iOS学习线路图

iOS是由苹果公司开发的移动操作系统,以xcode为主要开发工具,具有简单易用的界面.令人惊叹的功能,以及超强的稳定性,已经成为iPhone.iPad 和iPod touch 的强大基础:iOS 内置的众多技术和功能让 Apple设备始终保持着遥遥领先的地位. iOS学习路线:http://www.mobiletrain.org/page/ios.html 课程分  类 课程模块 模块介绍 课程内容 Part1C语言 C语言和Objective-C语言 C语言 Mac系统及常用工具.进制:C数据

【回答】IOS开发好学吗?

移动互联网在近几年发展迅猛,同时苹果用户的数量也在快速增长,IOS系统的应用范围也越来越宽,IOS的开发人才也越来越被社会需要,所以很多想转行的在职人士和大学生纷纷选择学习IOS开发,但是IOS开发对于零基础的人该如何入门?IOS开发是否好学? 答案是:只要方法对,再加上你肯下定决心努力学,120天便可以成为IOS开发工程师.(温馨提示:懂一点英语,有CET-4的水平最好) 第一个阶段,如果你是零基础,一定要好好打好C语言的基础,这个阶段大约需要一个月,教材的话可以去当当或者亚马逊搜索,看看读者

P2327 [SCOI2005]扫雷

题目描述 相信大家都玩过扫雷的游戏.那是在一个 n×mn\times mn×m 的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字表示和它8连通的格子里面雷的数目.现在棋盘是 n×2n\times 2n×2 的,第一列里面某些格子是雷,而第二列没有雷,如下图: 由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一列雷有多少种摆放方案. 输入输出格式 输入格式:

HDU 5965(三行扫雷 dp)

题意是在一个 3 行 n 列的图上进行扫雷,中间一行没有雷,且中间一行的每一格都会显示周围的雷数,问根据已知的雷数在上下两行设置地雷的方法数. 分析知每一列所填雷数的和与周围的雷数有关,但每列具体的填法只影响方法数,不影响周围的雷数统计,而且每列的雷数只有 0,1,2 这三种, 用数组 dp[ ] 来记录每列的雷数,用数组 a[ ] 来记录所给的信息( 每一列出现的周围雷数的统计 ),则: dp[ pos ] = a[ pos - 1 ] - dp[ pos - 1 ] - dp[ pos -

iOS运营级B2B服务平台App、自定义图标库、个人中心页面、识别身份证Demo、瀑布流等源码

iOS精选源码 简单的个人中心页面-自定义导航栏并予以渐变动画 一个近乎完整的可识别中国身份证信息的Demo 可自动快速... iOS可自定义图表库 - PNChart 开源一款曾是运营级的B2B服务平台APP<云采> 使用ffmpeg解码最简iOS播放器 注释得非常清楚的瀑布流,和自己的一些想法 iOS日志框架学习分享 在iOS App中录制MP3和AMR:ZWAudioRecordTool 一套应用于swift项目的空白页组件EmptyPage 2.0 扫雷简单实现 iOS优质博客 iOS

易乐红包扫雷系统开发

红包扫雷系统开发找[詹慧:137微1089电6705],红包扫雷模式软件开发,红包扫雷模式APP开发,红包扫雷源码开发,红包扫雷定制开发.红包扫雷系统案例. 一:红包扫雷可发可抢红包房间规则介绍 1.7包单雷1.6倍30-800 2.9包多雷50-800单雷倍数1.1倍双雷倍数1.0倍三雷倍数1.25倍四雷倍数1.7倍五雷倍数2.2倍 注:以上房间及金额都是后台可之定义添加 抢包者奖励规则: 1.23-7.89奖励5.8811.11-55.55奖励10.88 9.87-3.21奖励5.8866.

58红包扫雷系统源码

消费互联网时代,58红包扫雷系统开发<詹慧:137微1089电6705>传统行业与变革的互联网之间的对立是常态.例如在线书店和电子书的发展,导致实体书店面临倒闭,传统纸质媒体出版行业陷入困境等.两者中一方的取胜似乎都是以牺牲另一方为代价. 可发可抢红包房间规则: (一)踩雷区: 10-100元1.6倍区7个包奖励:小顺(1.88)小豹子(2.66)大顺(5.55)大豹(8.88) 5.20(9.99)13.14(13.14) 20-200元1.6倍区7个包奖励:小顺(2.88)小豹子(3.66

58红包扫雷APP开发

消费互联网时代,58红包扫雷系统开发<詹慧:137微1089电6705>传统行业与变革的互联网之间的对立是常态.例如在线书店和电子书的发展,导致实体书店面临倒闭,传统纸质媒体出版行业陷入困境等.两者中一方的取胜似乎都是以牺牲另一方为代价. 可发可抢红包房间规则: (一)踩雷区: 10-100元1.6倍区7个包奖励:小顺(1.88)小豹子(2.66)大顺(5.55)大豹(8.88) 5.20(9.99)13.14(13.14) 20-200元1.6倍区7个包奖励:小顺(2.88)小豹子(3.66

Classic Minesweeper Simple 经典扫雷游戏简洁版

老游戏新尝试,复刻经典扫雷游戏,简洁版,设计时尽可能减少文字信息,模仿iOS的特点,上手即用.提供最基本的设置和统计信息,毕竟大家是为了玩儿游戏,不是做大数据分析不是吗?试试吧,欢迎讨论分享. 操作: 长按标旗 点按翻开 扫动滚屏 捏合缩放 This is a classic minesweeper, the famous logic game. If you want to win, find and flag all the mines hidden in blocks. Have a tr