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 //格子边长个数
#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扫雷的更多相关文章
- iOS 扫雷游戏
代码地址如下:http://www.demodashi.com/demo/11254.html 1.项目结构图 Viewcontroller:扫雷逻辑代码 LevelModel:扫雷难度选择代码 2. ...
- iOS - 适配 iOS 13 之工兵连扫雷
iOS 13 支持适配的机型 目前最新 iPhone 11.iPhone 11 Pro和iPhone 11 Pro Max iPhone X.iPhone XR.iPhone XS.iPhone XS ...
- 神奇的NOIP模拟赛 T1 LGTB 玩扫雷
LGTB 玩扫雷 在一个n m 的棋盘上,有位置上有雷(用“*” 表示),其他位置是空地(用“.” 表示).LGTB 想在每个空地上写下它周围8 个方向相邻的格子中有几个雷.请帮助他输出写了之后的棋盘 ...
- iOS开发环境C语言基础 数组 函数
1 求数组元素的最大值 1.1 问题 创建程序,实现查询数组中最大值的功能,需求为:创建一个长度为10的数组,数组内放置10个0~99之间(包含0,包含99)的随机数作为数组内容,要求查询出数组中的最 ...
- (史上最全的ios源码汇总)
按钮类 按钮 Drop Down Control http://www.apkbus.com/android-106661-1-1.html 按钮-Circular M ...
- 2015最新iOS学习线路图
iOS是由苹果公司开发的移动操作系统,以xcode为主要开发工具,具有简单易用的界面.令人惊叹的功能,以及超强的稳定性,已经成为iPhone.iPad 和iPod touch 的强大基础:iOS 内置 ...
- HDU 5965(三行扫雷 dp)
题意是在一个 3 行 n 列的图上进行扫雷,中间一行没有雷,且中间一行的每一格都会显示周围的雷数,问根据已知的雷数在上下两行设置地雷的方法数. 分析知每一列所填雷数的和与周围的雷数有关,但每列具体的填 ...
- HDU 5965 扫雷
扫雷游戏是晨晨和小璐特别喜欢的智力游戏,她俩最近沉迷其中无法自拔. 该游戏的界面是一个矩阵,矩阵中有些格子中有一个地雷,其余格子中没有地雷. 游戏中,格子可能处于己知和未知的状态.如果一个己知的格子中 ...
- 【BZOJ1088】扫雷(递推)
[BZOJ1088]扫雷(递推) 题面 BZOJ 题解 忽然发现这就是一道逗逼题. 只需要枚举一下第一个是什么,后面都能够推出来了.. #include<iostream> using n ...
随机推荐
- arcgis api for js入门开发系列十叠加SHP图层
上一篇实现了demo的热力图,本篇新增叠加SHP图层,截图如下: 叠加SHP图层效果实现的思路如下:利用封装的js文件,直接读取shp图层,然后转换geojson,最后通过arcgis api来解析转 ...
- Silverlight将Excel导入到SQLserver数据库
最近纠结于读取Excel模板数据,将数据导入SQLServer的Silverlight实现,本文将实现代码贴出,作为一个简单的例子,方便各位: 1.先设计前台界面新建Silverlight5.0应用程 ...
- 使用Swagger实现webapi接口自动化文档生成
这里是实现自动化api稳当的生成,在网上看了很多swagger的文档,可能都是在为实现接口时直接使用的swagger,其实步骤差不多,但是更加详细的我还没看到,又或者说,我看着文档来的时候还是出错啦, ...
- 在React中使用Redux
这是Webpack+React系列配置过程记录的第六篇.其他内容请参考: 第一篇:使用webpack.babel.react.antdesign配置单页面应用开发环境 第二篇:使用react-rout ...
- eclipse左侧的导航栏不见了怎么调
点击eclipse上方导航栏的window 然后再点击Reset Perspective 这样左侧的导航栏就出来了
- [编织消息框架][netty源码分析]11 UnpooledHeapByteBuf 与 ByteBufAllocator
每种ByteBuf都有相应的分配器ByteBufAllocator,类似工厂模式.我们先学习UnpooledHeapByteBuf与其对应的分配器UnpooledByteBufAllocator 如何 ...
- 6.vue如何上传到svn
node_module是不需要上传的,先删掉,然后用tortoiseSvn的TortoiseSVN Repository Browser,ADD folder,选择工程文件,就行,checkout下来 ...
- Java编码问题汇总
转自 http://www.blogjava.net/zhangchao/archive/2011/05/26/351051.html Thanks Java编码问题汇总 工作中经常遇到java编码问 ...
- html网页的兼容性和css优先级
网页不仅是在一个浏览器上显示的网页,也要多考虑其他浏览器的兼容性,火狐.谷歌.搜狗等浏览器总体来说,网页的变化不大,最主要的是还是IE浏览器. color:red\9; IE6 IE7 IE8 ...
- Python系列教程(三):输入和输出
1.1 raw_input() 在Python中,获取键盘输入的数据的方法是采用 raw_input 函数(至于什么是函数,咱们以后的章节中讲解),那么这个 raw_input 怎么用呢? 看如下示例 ...