分享发现 小白自强系列——循环

2826874813 · 2020年03月11日 · 最后由 2826874813 回复于 2020年03月13日 · 114 次阅读

这里说下循环的3种实现: 假设有个游戏,有功力值,可以闭关,那么怎么用循环来弄功力值的增加呢?
自己搞的效果:3种循环的实现效果

方法一:通过段落的跳转
先设定一个作为判断的变量(下称:判断变量),再设计实现循环的段落,在每次跳转到这个段落时,判断变量都发生变化,在判断变量满足条件时跳转到其他地方,否则重复跳转都这个循环段落。

相关代码如下:

[闭关10]
<:MD.功力增加=random_int(1, 10)
=:MD.功力值=MD.功力值+MD.功力增加
>MD.闭关时间--
一年过去了,功力增加了(j)MD.功力增加(/j),当前功力为(j)MD.功力值(/j),剩余闭关时间(j)MD.闭关时间(/j)<:if(MD.闭关时间==0) 跳:game_jumpto('跳转段落实现循环')
跳:闭关10

这里的判断变量就是:MD.闭关时间。
我在跳转到这里之前,令MD.闭关时间=10,再跳转都这个循环,然后每年随机增加1~10点功力,直到MD.闭关时间减少都0,跳转都其他地方。

方法二:for循环
for语句的使用如下:
for(判断变量赋初值;执行循环的条件;每次循环后判断变量的变化){每次循环实现的内容;多条指令用分号(;)隔开;}

相关代码如下:

[闭关10(for)]
=:for(MD.闭关时间=0;MD.闭关时间!=10;MD.闭关时间++){MD.功力增加=random_int(1, 10);MD.功力值=MD.功力值+MD.功力增加;myArray[0]}
跳:for循环

这个一般用于循环赋值,不能像循环段落那样每次打印出一句“一年过去看。。。。。”的话。
(注:前面尽量用=:,之前我使用>:好像有点小问题)

方法三:while循环
while语句的使用如下:
while(执行循环的条件){每次循环实现的内容;多条指令用分号(;)隔开;判断变量赋初值放在while之前;每次循环后判断变量的变化放在这里;}

相关代码如下:

[闭关10(while)]
<:MD.闭关时间=0
=:while(MD.闭关时间!=10){MD.功力增加=random_int(1, 10);MD.功力值=MD.功力值+MD.功力增加;MD.闭关时间++;}
跳:while循环

跟for循环差不多,只是实现的语句不同。

最后给出我测试的完整代码:

[|]
测试
(b)1(/b)
选:3种循环选择

[3种循环选择]
<:MD.功力值=100

[|]
这里看下三种实现循环的效果
(b)1(/b)
(b)2(/b)
(b)3(/b)
选:跳转段落实现循环
选:for循环
选:while循环

[跳转段落实现循环]
<MD.闭关时间=10
(b)1(/b)(b)2(/b)(b)3(/b)(b)4(/b)
选:闭关10
选:查看目前功力值
选:功力值清0
选:3种循环选择

[闭关10]
<:MD.功力增加=random_int(1, 10)
=:MD.功力值=MD.功力值+MD.功力增加
>MD.闭关时间--
一年过去了,功力增加了(j)MD.功力增加(/j),当前功力为(j)MD.功力值(/j),剩余闭关时间(j)MD.闭关时间(/j)<:if(MD.闭关时间==0) 跳:game_jumpto('跳转段落实现循环')
跳:闭关10

[查看目前功力值]
当前功力值为(j)MD.功力值(/j)。
跳:跳转段落实现循环

[功力值清0]
<:MD.功力值=0
(j)MD.功力值(/j)
跳:跳转段落实现循环

[for循环]
(b)1(/b)(b)2(/b)(b)3(/b)(b)4(/b)
选:闭关10(for)
选:查看目前功力值(for)
选:功力值清0(for)
选:3种循环选择

[闭关10(for)]
=:for(MD.闭关时间=0;MD.闭关时间!=10;MD.闭关时间++){MD.功力增加=random_int(1, 10);MD.功力值=MD.功力值+MD.功力增加;myArray[0]}
跳:for循环

[查看目前功力值(for)]
当前功力值为(j)MD.功力值(/j)。
跳:for循环

[功力值清0(for)]
<:MD.功力值=0
(j)MD.功力值(/j)
跳:for循环

[while循环]
(b)1(/b)(b)2(/b)(b)3(/b)(b)4(/b)
选:闭关10(while)
选:查看目前功力值(while)
选:功力值清0(while)
选:3种循环选择

[闭关10(while)]
<:MD.闭关时间=0
=:while(MD.闭关时间!=10){MD.功力增加=random_int(1, 10);MD.功力值=MD.功力值+MD.功力增加;MD.闭关时间++;}

跳:while循环

[查看目前功力值(while)]
当前功力值为(j)MD.功力值(/j)。
跳:while循环

[功力值清0(while)]
<:MD.功力值=0
(j)MD.功力值(/j)
跳:while循环
共收到 3 条回复

代码有问题

。。。是昨晚我测试数组把一个打到上面去了,现在去掉好了

for循环=:for(MD.闭关时间=0;MD.闭关时间!=10;MD.闭关时间++){MD.功力增加=random_int(1, 10);MD.功力值=MD.功力值+MD.功力增加;myArray[0]}中的myArray[0]要去掉

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册