查看: 2081|回复: 9

[已经解决] 一个语句编写问题

[复制链接]
梦石
0
星屑
2605
在线时间
896 小时
注册时间
2011-4-30
回帖
108

开拓者

发表于 2013-12-30 13:35:41 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 mariofans 于 2013-12-30 15:09 编辑

for i in XX如果要判定i不在XX范围内该怎么写?
梦石
0
星屑
50
在线时间
378 小时
注册时间
2013-10-14
回帖
213
发表于 2013-12-30 13:54:36 | 显示全部楼层
本帖最后由 batfjtn 于 2013-12-30 13:56 编辑

for是赋予....

你都赋予了数字怎么弄不在这个方位~~!!

for i 10...20

i的值在10到20之间~~!!!

你的要求应该是另外的写法~~!!
  1. i = rand(100) # 随机赋予I值在0到100
  2. case i
  3.   when 0..29
  4.     p i
  5.   when 30..49
  6.     p i
  7.   when 50..79
  8.     p i
  9.   when 80..100
  10.     p i
  11. end
复制代码

评分

参与人数 1星屑 +120 收起 理由
myownroc + 120 认可答案

查看全部评分

最简单的学习方法就是努力回答别人的问题...
任何教程都没有实践来的重要...
XP小问题都能自己解决了,剩下的就是脚本了...
╰⋛⋋⊱⋋๑角⊱☠c色๑⋌⊰⋌⋚╯
回复

使用道具 举报

梦石
0
星屑
2605
在线时间
896 小时
注册时间
2011-4-30
回帖
108

开拓者

 楼主| 发表于 2013-12-30 14:37:56 | 显示全部楼层
batfjtn 发表于 2013-12-30 13:54
for是赋予....

你都赋予了数字怎么弄不在这个方位~~!!

额好吧我换种方向……(@xeup之前已经被赋值)
  1. if @xeup != $game_map.events.values
  2.       for eupn in $game_map.events.values
  3.         for eupo in @xeup
  4.           @nid = eupn.id
  5.           @oid = eupo.id
  6.           #if eupn != eupo
  7.           if @nid != @oid
  8.             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  9.             @xeup = $game_map.events.values
  10.           end
  11.         end
  12.       end
  13.     end
复制代码
这段脚本是在地图事件总数变化的情况下运用events.values的差异选取新生成的事件。
可不知道为什么只生成一个事件的情况下@nid却有一组数据……

如何让@nid只代表新生成的那一个事件?

点评

换句话说就是选取@nid不在@oid的范围内。  发表于 2013-12-30 14:39
回复

使用道具 举报

梦石
0
星屑
50
在线时间
378 小时
注册时间
2013-10-14
回帖
213
发表于 2013-12-30 14:46:48 | 显示全部楼层
本帖最后由 batfjtn 于 2013-12-30 14:52 编辑

是你表达错误吧??

if @nid < @oid

应该是小于吧~!!!

刚刚说错了~!!

应该是小于~~!!

在新的ID号没有超过旧的ID号的情况下执行一种方式~~!!

如果新ID超过之后执行另外一种方式~~!!!
最简单的学习方法就是努力回答别人的问题...
任何教程都没有实践来的重要...
XP小问题都能自己解决了,剩下的就是脚本了...
╰⋛⋋⊱⋋๑角⊱☠c色๑⋌⊰⋌⋚╯
回复

使用道具 举报

梦石
0
星屑
2605
在线时间
896 小时
注册时间
2011-4-30
回帖
108

开拓者

 楼主| 发表于 2013-12-30 14:51:54 | 显示全部楼层
batfjtn 发表于 2013-12-30 14:46
是你表达错误吧??

if @nid > @oid

还是一样……
回复

使用道具 举报

梦石
0
星屑
2605
在线时间
896 小时
注册时间
2011-4-30
回帖
108

开拓者

 楼主| 发表于 2013-12-30 14:56:57 | 显示全部楼层
batfjtn 发表于 2013-12-30 14:46
是你表达错误吧??

if @nid < @oid

怎么可能……新生成的事件ID怎么会比其他的小……
还有还是没变化啊……

点评

自己瞎想你脚本的意思~~!!你又没有整个代码~!!谁知道你如果执行的逻辑啊~~!??  发表于 2013-12-30 15:05
回复

使用道具 举报

梦石
0
星屑
50
在线时间
378 小时
注册时间
2013-10-14
回帖
213
发表于 2013-12-30 15:02:28 | 显示全部楼层
mariofans 发表于 2013-12-30 14:51
还是一样……

      if @nid != @oid
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
        @xeup = $game_map.events.values
      end

你要把这边的逻辑理清楚了就行了.....

这只是数值间的对比~!!

没有范围内的对比~!!
最简单的学习方法就是努力回答别人的问题...
任何教程都没有实践来的重要...
XP小问题都能自己解决了,剩下的就是脚本了...
╰⋛⋋⊱⋋๑角⊱☠c色๑⋌⊰⋌⋚╯
回复

使用道具 举报

梦石
0
星屑
2605
在线时间
896 小时
注册时间
2011-4-30
回帖
108

开拓者

 楼主| 发表于 2013-12-30 15:04:47 | 显示全部楼层
☆————————————此帖已经终结————————————☆
  1. if @xeup != $game_map.events.keys.max
  2.       eupn = $game_map.events.keys.max
  3.       eupo = @xeup
  4.       if eupn > eupo
  5.         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  6.         @xeup = $game_map.events.keys.max
  7.       end
  8.     end
复制代码
果然还是利用了events.keys.max只增不减的特性做成了判断。
感谢@batfjtn 提供了思路。

点评

我坐等版主加分就好了~!哈哈~~!!你原来那个帖子我也看了~!所以有这样的想法~~~!!  发表于 2013-12-30 15:19
这可是极重要的事件啊~~你给了我关于大于小于和关于范围之类的思路,让我从范围跳到定值来思考。 (虽然不能评分……)  发表于 2013-12-30 15:13
解决了就好~!我以前也碰到这个问题~!不过换个思路来说就解决了...  发表于 2013-12-30 15:11
无缘无故就帮人解决问题了~~~~........  发表于 2013-12-30 15:08
那个$game_map.events.values好像是在范围内随便取一个值的说……  发表于 2013-12-30 15:08
回复

使用道具 举报

梦石
0
星屑
122
在线时间
552 小时
注册时间
2012-8-18
回帖
1392
发表于 2014-1-1 17:14:29 | 显示全部楼层
$game_map.events是一个hash表,$game_map.events.values将会返回一个数组,里面存储了所有的事件
而$game_map.events.keys将会返回一个数组,里面是所有事件的编号【大概吧?】在加.max就会返回最大的id
for event in $game_map.events.values将会依次返回每一个事件
我要填坑!我要背单词!我要学日语!我要每天锻炼!
好吧呵呵= =
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部