设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
楼主: chd114
打印 上一主题 下一主题

[RMXP发布] 【丧心病狂】被玩坏的RMXP之一些计算和判定

[复制链接]

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

41
发表于 2014-7-6 08:44:37 | 只看该作者
chd114 发表于 2014-7-6 08:40
大概我不是人= =我正在填的坑的技能设置要用到这些···比如伤害为质数时无视敌人防御、伤害为 ...

智商低不是你的错,智商低还很骄傲地炫耀就是你的问题了

评分

参与人数 1星屑 -225 收起 理由
怪蜀黍 -225 人身攻击了喵

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

42
 楼主| 发表于 2014-7-6 08:45:34 | 只看该作者
taroxd 发表于 2014-7-6 08:44
智商低不是你的错,智商低还很骄傲地炫耀就是你的问题了

我之前也不知道有那种算法···大概你天生就知道有正则表达式了
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

43
发表于 2014-7-6 08:47:01 | 只看该作者
chd114 发表于 2014-7-6 08:45
我之前也不知道有那种算法···大概你天生就知道有正则表达式了

那个算法是小学毕业就能知道的算法,也没有用到正则表达式。

再次强调,智商低不是你的错,智商低还来炫耀就是你的问题了

评分

参与人数 1星屑 -225 收起 理由
怪蜀黍 -225 人身攻击了喵

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

44
 楼主| 发表于 2014-7-6 08:48:05 | 只看该作者
taroxd 发表于 2014-7-6 08:44
智商低不是你的错,智商低还很骄傲地炫耀就是你的问题了
  1. =begin
  2. ===============================================================================
  3.   ■ 使用方法:
  4. -------------------------------------------------------------------------------
  5.   ● number 则返回某个单元名称重复的数量。
  6.     例:[7, 7, 7, 7, 6, 6, 5].number(7)      => 4
  7.   ● aftftn 也是返回重复的数量,但与 number 有所不同。
  8.     例:[7, 7, 7, 7, 6, 6, 5].aftftn(4)      => 2
  9.     也就是说就是数组第几个单元的名称重复的数量。
  10.   ● delete_same 则删除单元里指定名称重复的部分,具有破坏性。
  11.     例:a = [7, 7, 7, 7, 6, 6, 5]
  12.         a.delete_same(7)
  13.         p a                                  => [7, 6, 6, 5]
  14.   ● same? 则返回是否是重复的单元。
  15.     例:a = [7, 7, 7, 7, 6, 6, 5]
  16.         p a.same?(4)                         => false
  17.         p a.same?(3)                         => true
  18.   ● das 和 das! 都是删除数组中所有重复的单元,但是 das 只会返回删除后的数组,das!
  19.      具有破坏性。
  20.     例:a = [7, 7, 7, 7, 6, 6, 5]
  21.         p a.das                              => [7, 6, 5]
  22.         p a                                  => [7, 7, 7, 7, 6, 6, 5]   # 没有变化
  23.         a.das!
  24.         p a                                  => [7, 6, 5]
  25.         # 之后没法再消了,总是返回原来的数组。
  26.   ● aftft 和 index 都是寻找第一个出现的单元,但有所不同。
  27.     例:a = [7, 7, 7, 7, 6, 6, 5]
  28.         p a.aftft(2)                         => 0
  29.     等同于
  30.         p a.index(a[2])                      => 0
  31.   ● dasn 和 dasn! 都是先删除重复的单元再计算出重复单元的数量,但是 dasn 只会返
  32.      回改变后的数组,dasn! 具有破坏性!
  33.     例:a = [7, 7, 7, 7, 6, 6, 5]
  34.         p a.dasn                             => [4, 2, 1]
  35.         p a                                  => [7, 7, 7, 7, 6, 6, 5]   # 没有变化
  36.         a.dasn!
  37.         p a                                  => [4, 2, 1]
  38.         a.dasn!
  39.         p a                                  => [1, 1, 1]
  40.         a.dasn!
  41.         p a                                  => [3]
  42.         a.dasn!
  43.         p a                                  => [1]
  44.         # 之后永远就会出现 [1] 了。
  45.   ● size 可以自行更改了,请看例子:
  46.     例:a = [7, 7, 7, 7, 6, 6, 5]
  47.         p a.size                             => 7
  48.         a.size = 4
  49.         p a                                  => [7, 7, 7, 7]
  50.         p a.size                             => 4
  51.         a.size **= 2
  52.         p a                                  => [7, 7, 7, 7, nil, nil, nil, nil,
  53.                                                  nil, nil, nil, nil, nil, nil,
  54.                                                  nil, nil]
  55.         # size 可以做任何运算。
  56.   ● fill 就是规定长度往后面 push 相应的字串,具有破坏性。
  57.     例:a = [7, 7, 7, 7, 6, 6, 5]
  58.         a.fill(3)
  59.         p a                                  => [7, 7, 7, 7, 6, 6, 5, nil, nil,
  60.                                                  nil]
  61.         a.fill(2, "我们")                    => [7, 7, 7, 7, 6, 6, 5, nil, nil,
  62.                                                  nil, "我们", "我们"]
  63. ===============================================================================
  64. =end
  65. class Array
  66.   def number(nth_name)
  67.     if self.index(nth_name) == nil
  68.       return 0
  69.     end
  70.     num = 1
  71.     for i in 0...self.size
  72.       if self[i] == nth_name and self.index(nth_name) != i
  73.         num += 1
  74.       end
  75.     end
  76.     return num
  77.   end
  78.   def aftftn(index)
  79.     num = 1
  80.     aftft = 0
  81.     for i in 0...self.size
  82.       if self[i] == self[index]
  83.         aftft = i
  84.         break
  85.       end
  86.     end
  87.     for j in 0...self.size
  88.       if self[j] == self[aftft] and aftft != j
  89.         num += 1
  90.       end
  91.     end
  92.     return num
  93.   end
  94.   def delete_same(name)
  95.     if self.number(name) == 0
  96.       return self
  97.     end
  98.     for i in 1..self.number(name)
  99.       for d in 0...self.size
  100.         if self[d] == name and self.index(name) != d
  101.           self.delete_at(d)
  102.           break
  103.         end
  104.       end
  105.     end
  106.     return self
  107.   end
  108.   def same?(index)
  109.     return (self.aftft(index) != index)
  110.   end
  111.   def das # (delete_all_same)
  112.     ary = self.dup
  113.     for j in 0...self.size
  114.       ary.delete_same(self[j])
  115.     end
  116.     return ary
  117.   end
  118.   def das!
  119.     ary = self.dup
  120.     for j in 0...ary.size
  121.       self.delete_same(ary[j])
  122.     end
  123.     return self
  124.   end
  125.   def aftft(index)
  126.     num = nil
  127.     for j in 0...self.size
  128.       if self[index] == self[j]
  129.         num = j
  130.         break
  131.       end
  132.     end
  133.     return num
  134.   end
  135.   def dasn # (delete_all_same_number)
  136.     pushing = []
  137.     ary = self.dup
  138.     a = self.das
  139.     for i in 0...a.size
  140.       pushing[i] = ary.number(a[i])
  141.     end
  142.     return pushing
  143.   end
  144.   def dasn!
  145.     ary = self.dup
  146.     a = self.das
  147.     self.clear
  148.     for i in 0...a.size
  149.       self[i] = ary.number(a[i])
  150.     end
  151.     return self
  152.   end
  153.   def size=(size)
  154.     if self.size == size
  155.       return
  156.     end
  157.     if self.size > size
  158.       s = self.size
  159.       for i in 0..self.size-size
  160.         self.delete_at(s-i)
  161.       end
  162.       return
  163.     end
  164.     for i in self.size...size
  165.       self[i] = nil
  166.     end
  167.   end
  168.   def fill(size, text = nil)
  169.     size.times do
  170.       self.push(text)
  171.     end
  172.   end
  173. end
复制代码
这里还有个脚本···不过不是我写的,我设定的一个群体技能里有判定是给敌人的伤害如果有相同的就去掉相同伤害,然后每个敌人受到不同伤害之和的平均值···按照ruby的语法怎么缩短更好···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

45
发表于 2014-7-6 08:51:02 | 只看该作者
chd114 发表于 2014-7-6 08:48
这里还有个脚本···不过不是我写的,我设定的一个群体技能里有判定是给敌人的伤害如果有相同的就去掉相 ...

array.uniq!
array.inject(:+) / array.size

ruby版本太低的事情我不管
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

46
 楼主| 发表于 2014-7-6 08:51:56 | 只看该作者
taroxd 发表于 2014-7-6 08:51
array.uniq!
array.inject(:+) / array.size

目前用的1.03···如果用1.05呢?
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

47
 楼主| 发表于 2014-7-6 08:52:21 | 只看该作者
taroxd 发表于 2014-7-6 08:51
array.uniq!
array.inject(:+) / array.size

好吧看错了···看成RMXP版本了···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

48
发表于 2014-7-6 08:54:29 | 只看该作者
chd114 发表于 2014-7-6 08:52
好吧看错了···看成RMXP版本了···

Ruby版本太低的话我就懒得弄了,我也不知道哪些东西能用哪些东西不能用
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

49
 楼主| 发表于 2014-7-6 08:57:15 | 只看该作者
taroxd 发表于 2014-7-6 08:54
Ruby版本太低的话我就懒得弄了,我也不知道哪些东西能用哪些东西不能用

···能不能用一定要试过才能知道吗···那ruby的东西至少1万条···= =一个个试太儿戏了吧
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

50
发表于 2014-7-6 08:58:36 | 只看该作者
chd114 发表于 2014-7-6 08:57
···能不能用一定要试过才能知道吗···那ruby的东西至少1万条···= =一个个试太儿戏了吧 ...

不能用就是换一种写法的事情,我说你不要再来秀下限了好不好!
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-21 19:08

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表