让不懂编程的人爱上iPhone开发(2013球iOS7版)-第7篇.pdf
上传人:sy****28 上传时间:2024-09-13 格式:PDF 页数:12 大小:430KB 金币:14 举报 版权申诉
预览加载中,请您耐心等待几秒...

让不懂编程的人爱上iPhone开发(2013球iOS7版)-第7篇.pdf

让不懂编程的人爱上iPhone开发(2013球iOS7版)-第7篇.pdf

预览

免费试读已结束,剩余 2 页请下载文档后查看

14 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

让不懂编程的人爱上iPhone开发(2013球iOS7版)-第7篇欢迎回来继续我们的学习。现在我们的to-do清单上还有不少事情要做,接下来先处理一个比较简单的:产生一个随机数,然后让它显示在屏幕上。在游戏开发的时候,我们经常会用到随机数。当然,大家最感兴趣的随机数可能就是体彩双色球了,可惜的是彩票里面的所谓随机数未必随机啊。。。我会告诉你连续追5年的号只中过最高5元钱吗?还好不是五毛,说多了都是泪啊。算了还是别做梦了,来说说游戏里面的随机数吧。在此之前提一句,如果哪位哥中了头奖,别忘了留个联系方式,土豪我们做个朋友吧!实际上,我们不可能让一个计算机真正产生完全随机不可预测的数字,而使用所谓的伪随机数生成器来产生类似的效果。这里我们将用到一个比较常用的,arc4random()函数。你应该还记得函数和方法的区别吧?不怕麻烦再重复一遍,函数不属于某个对象,而方法则必须寄生于某个对象。在我们这个游戏里,最适合生成随机数的地方当然就是游戏开始处。在viewDidLoad方法中添加以下代码:targetValue=1+(arc4random()%100);此时viewDidLoad方法的代码如下:-(void)viewDidLoad{[superviewDidLoad];currentValue=self.slider.value;targetValue=1+(arc4random()%100);}当然,你也会看到一个红色的错误提示信息。这里我们做了什么呢?首先使用了一个新的变量targetValue。因为之前没有定义过,所以你看到了错误提示。待会儿我们会修复这个问题。如果不告诉编译器targetValue这个变量的类型是什么,它就不知道该为这个变量分配多少存储空间,也不能检查我们在其它地方是不是正确的使用了这个变量。这里我们调用了arc4random()函数来产生一个随机整数,它的范围在0到40亿之间。显然滑动条的数值不可能有那么高,所以我们希望把这个随机数限定在1到100之间。为了实现这一点,首先用一个模操作数(%)来限制arc4random()的范围在0到99之间,然后再加上1,让它的范围变成1-100。好吧,什么是模操作数?所谓的模是Mod的音译,实际就是求余的意思。举个例子,11%2,得到的余数是1。任何一个整数%2的结果只能是0或者1,也就是0-1之间。所以arc4random()%100实际上得到的是0到99之间的随机数。希望你别被上面的数学运算吓倒。虽然很多人说只有学好数学才能成为一个好的程序猿,但实际上绝大多数应用中所用到的数学都不会比上面的算术复杂。当然,在游戏和科学计算中用到的数学要稍微复杂一些。不过你的目的并不是成为一个算法高手或者数学家,所以也不必太担心。让我们来消灭红牌吧。在实例变量声明部分添加targetValue这个变量:@interfaceCrazyDragViewController(){intcurrentValue;inttargetValue;}这里只是定义了一个新的int类型的变量,名为targetValue。当然,我希望你明白为什么要把targetValue定义为实例变量。这是因为我们不光在viewDidLoad方法中要用到它,在后面的showAlert方法中也需要用到它。更改showAlert的方法如下:-(IBAction)showAlert:(id)sender{NSString*message=[NSStringstringWithFormat:@"滑动条的当前数值是:%d,我们的目标数值是:%d",currentValue,targetValue];[[[UIAlertViewalloc]initWithTitle:@"您好,苍老师"message:messagedelegate:nilcancelButtonTitle:@"本老师知道了"otherButtonTitles:nil,nil]show];}在上面的代码中,我们在message字符串里面加上了一句话,其中的第一个%d实际运行的时候会用currentValue变量中的数值来替代,而第二个%d实际运行时会用targetValue变量中的数值来替代。\n这个符号之前没接触过。实际上它在字符串中出现的时候,就意味着我们要换行了。好了,点击Run运行游戏,试试看有什么变化。新的回合如果你多试几次,会发现对话框所提示的随机数目标数值几乎就没改变过。这样的话这游戏也就没啥意思了。还好意思说自己是随机数,一次都不变。这就好比双色球每期中奖号码都是重复的,还有谁愿意买?(我!!!)这