Project1

标题: 怎么计算这个数值? [打印本页]

作者: 赛露休斯    时间: 2009-1-22 01:36
标题: 怎么计算这个数值?
当a这个值大于40时,a-=1,一直减到a<41时,再a+=1,直到a>200时,a再次递减至40。。。。。。
也就是a的数值在40-200间来回循环
怎么计算。。。。。。。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 缺牙de兔子    时间: 2009-1-22 01:40
你想用脚本做
还是用条件分歧配合变量来做?
作者: 赛露休斯    时间: 2009-1-22 01:43
以下引用缺牙de兔子于2009-1-21 17:40:46的发言:

你想用脚本做
还是用条件分歧配合变量来做?

脚本。。。。。。
作者: 赛露休斯    时间: 2009-1-22 05:55
沉了,自顶,高手快来吧。。。。。。
作者: 缺牙de兔子    时间: 2009-1-22 06:17

  1. @a=300
  2. for i in 1..@a
  3. if @a>200
  4. @a-=1
  5. end
  6. if @a<40
  7. @a+=1
  8. end
  9. end
  10. p @a
复制代码

说实话这个逻辑行不通
如果成立就是个死循环
你不可能在这2个判断里徘徊

如果A大于200开始减 不可能减到40 所以另一个判断不可能达成
如果A小于40开始加  到40判断就停止了 直接跳出循环 不可能到200

作者: dbshy    时间: 2009-1-22 06:27
def jisuan(a)
loop do
if a> 200 then
  a-= 1
end
if a< 40 then
  a+= 1
end
end
end

LZ这是个死循环 - -bb
作者: 赛露休斯    时间: 2009-1-22 06:32
可能是没表达清楚吧
其实偶是想判断这帖的
http://rpg.blue/viewthread.php?t ... 1%2D21+22%3A30%3A42
颜色在某个数值范围内来回改变
作者: 缺牙de兔子    时间: 2009-1-22 06:33
以下引用dbshy于2009-1-21 22:27:24的发言:
LZ这是个死循环 - -bb

{/tx}我也被蒙了
作者: 亿万星辰    时间: 2009-1-22 06:36
当a这个值大于200时,a-=1,一直减到a<40时,再a+=1,直到a>200时,a再次递减。。。。。。

假设一开始a是大于200的
temp = -1
while true
a += temp
temp *= -1 if a > 200 or a < 40
end [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 缺牙de兔子    时间: 2009-1-22 06:36
以下引用赛露休斯于2009-1-21 22:32:32的发言:

其实偶是想判断这帖的
http://rpg.blue/viewthread.php?tid=115758&ntime=2009%2D1%2D21+22%3A30%3A42
颜色在某个数值范围内来回改变

其实你判断那个并不能使用这个逻辑
你直接吃个回血药肯定能超过200--
如果你被攻击那肯定有几率低于200
你只需要判断血在百分之几的地方改变颜色就可以了

作者: dbshy    时间: 2009-1-22 06:39
以下引用赛露休斯于2009-1-21 22:32:32的发言:

可能是没表达清楚吧
其实偶是想判断这帖的
http://rpg.blue/viewthread.php?tid=115758&ntime=2009%2D1%2D21+22%3A30%3A42
颜色在某个数值范围内来回改变


[本贴由作者于 2009-1-21 22:34:26 最后编辑]

今晚背了5个小时单词累了 = -
明天不去实验室打杂的话,就帮你写一个吧
作者: 赛露休斯    时间: 2009-1-22 06:49
以下引用亿万星辰于2009-1-21 22:36:32的发言:

当a这个值大于200时,a-=1,一直减到a<40时,再a+=1,直到a>200时,a再次递减。。。。。。

假设一开始a是大于200的
temp = -1
while true
a += temp
temp *= -1 if a > 200 or a < 40
end

放进去后直接卡死,偶的是放到update里的
作者: 亿万星辰    时间: 2009-1-22 16:02
以下引用赛露休斯于2009-1-21 22:49:52的发言:
放进去后直接卡死,偶的是放到update里的

当然会卡死,无限循环啊,我只是提供方法
作者: aaaagq    时间: 2009-1-22 16:19
亿万星辰的意思是:
放到需要的地方。

  def initialize
    @temp = -1
    super
  end
  def update
    @a += @temp
    @temp = -1 if @a > 200
    @temp = 1 if @a < 40
    super
  end
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1