博客> iOS开发-扫雷小游戏(二)
iOS开发-扫雷小游戏(二)
2019-12-09 16:18 评论:1 阅读:1434 HaoZhongLiang
ios iOS开发 iOS小游戏

相信大家看完上一篇文章,都用自己的方法实现了一下扫雷小游戏,在这里我写一下我自己的实现(由于没有mac所以代码就不能粘贴上了) 我们要做的游戏可以自由的选择小块的总数以及雷的数量 首先我的每一个小块都是继承与button的myItem对象,因为button的属性我可以利用的到,我又给myItrm加了一个bool值(用来判断是否为雷 isLei)作为属性 在控制器中拓展一个小块总数的integer属性numItem和雷的数量numLei属性 1、如何把雷随机分布、、 这个我想了很久,鉴于整个扫雷游戏的完善我最终是这么实现的: 首先**创建一个可变数组arr然后根据总数以及雷的数量,插入numLei数量的【NSNumber numberWithBool:YES】其他即为NO,这里我们没有必要随机,然后for循环创建小块(当然创建numItem个),至于小块的fram我们稍后讨论。。**在for循环中我们设置myItem的isLei属性,在循环中我们取numItem - i 之间的随机整数x(即0~numItem-i-1之间的任意一个数)然后从arr数组中取出x对应的bool值赋等于isLei,然后把x处的值删掉,这样我们就实现了创建小块以及随机设置那些是雷 那些不是雷 2、如何分开一次点击事件是打开小块还是插旗、、 这个是比较容易实现的,我们另外创建一个继承button的类styleBut,在此类里写一个枚举style,枚举有两个值,一个为styleNone作为点击,另一个为styleQizi 作为插旗,加一个style的属性,然后就和我上篇的图片一样,在下方实现两个按钮,一个的style属性为styleNone,一个的style属性为styleQizi ,同时给控制器也设置一个style属性,让按钮点击时style=but.style ,然后再myItem的点击方法中进行判断 3、点开小块如何判断是雷或者不是雷,是雷游戏结束、反之如何判断其周围有多少雷、、 我们把1,2都实现了之后,3的判断是不是雷问题就相当好解决了,不是雷我是这么实现的, 在1,中我们设置myItem是否isItem 属性时候,我在之前创建了一个可变数组leiArr,用来存放创建时雷的i,并且让myItem的tag=100+i,这样我们点击时就可以得到此小块是排在第几个的,假如a=myItem.tag-100,然后根据我们的排列,比如我是排列的为5列,那就分别判断a-1,a+1,a+5,a-5,a-5-1.a-5+1,a+5-1,a+5+1,是否在leiArr中存在 若存在就让我们定义的变量y++,当然你如果这么简单的判断是错误的,因为a-1和a+1不一定和a是统一排的 。所以我们要先判断a-1与a+1是否和a在同一排,即(a-1或者a+1)/5是否等于a/5,如果不等于那么a+5-1,a-5-1或者a+5+1,a-5+1也是不用判断是否为雷的。。。。可能会有同学问那么a-5和a+5呢,其实这个是不用判断的,因为他们如果是特殊情况也是绝对不可能出现在leiArr里的。。。 这篇就写到这里 我感觉这些东西对于大家都是非常皮毛的,如果对您有用更好,没用就当自己的记录了

收藏
1
sina weixin mail 回到顶部