查看: 1969|回复: 6

[已经过期] 二维数组@a[0,0]=AAA[1]都是整数为何错误?

  [复制链接]
梦石
0
星屑
60
在线时间
386 小时
注册时间
2006-12-10
回帖
206
发表于 2011-9-7 07:24:03 | 显示全部楼层 |阅读模式

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

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

×
  1. AAA=[8,16,32,64,128,256,512,1024,2048,4096,8192,16384]
  2. class Vk
  3.   def initialize
  4.     @a = Table.new(100, 20)
  5.   end
  6.   attr_accessor :a
  7.   def ddd
  8.      n=AAA.size     
  9.     @a=AAA[rand(n)]
  10.    end
  11. end

复制代码
不明白为何总是错,知道的请指出一下,谢谢.
梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2011-9-7 09:06:27 | 显示全部楼层
@a既然是一个Table,那么后来的@a=AAA[rand(n)]又是怎么个情况?
Table的结构
t = Table.new(100, 20)  # 100*20=2000个元素的二维数组
t[0, 1] = 5
t[0, 2] = 6
t[99, 19] = 66
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

梦石
0
星屑
60
在线时间
386 小时
注册时间
2006-12-10
回帖
206
 楼主| 发表于 2011-9-7 22:53:13 | 显示全部楼层
AAA=[8,16,32,64,128,256,512,1024,2048,4096,8192,16384]
AAA是常数,便于修改数值然后代入到二维数组@a里面.
刚开始时,我用的时rand(n)来随机,但随机太过自由,就想用一个常数组来控制.
如@a=AAA[1],而AAA里可以用随机数来取常数里面已经设定好的各个值.
但这个做不代入游戏没有错,用p来显示也正常.但一到了游戏里,就发生错误了.



derdfyga于2011-9-7 22:56补充以下内容:
我把我的原数据贴出来吧.[code]class Vk
任务难度=[8,16,32,64,128,256,512,1024,2048,4096,8192,16384]
  def 新任务
  #0任务难度,1坐标X,2坐标Y,3获得声望,4获得经验,5获得金钱,6获得物品,
  #7获得装备 8获得武器,9指定怪物  10任务查询费,11稀有度,12指定怪物HP,
  #13指定怪物MP,14指定怪物攻击力,15指定怪物防御,16怪物精神,17怪物敏捷.
    #任务坐标
    @任务数据[0,1]=rand(60)+1
    @任务数据[0,2]=rand(60)+1
    $game_variables[6]=@任务数据[0,1]
    $game_variables[7]=@任务数据[0,2]
    #奖励声望
    @任务数据[0,3]=rand(3)+1
    $game_variables[8]=@任务数据[0,3]
    #奖励经验
    @任务数据[0,4]=rand(80)+20
    $game_variables[9]=@任务数据[0,4]
    #奖励金钱
    @任务数据[0,5]=rand(80)+20
    $game_variables[10]=@任务数据[0,5]
    #奖励物品
    @任务数据[0,6]=rand(10)+1
    $game_variables[11]=@任务数据[0,6].round
    #奖励装备
    @任务数据[0,7]=rand(10)+1
    $game_variables[4]=@任务数据[0,7].round
    #奖励武器
    @任务数据[0,8]=rand(10)+1
    $game_variables[4]=@任务数据[0,8].round
    #指定怪物
    @任务数据[0,9]=rand(10)+1
    $game_variables[4]=@任务数据[0,9].round
    #任务费用
    @任务数据[0,10]=rand(90)+10
    $game_variables[5]=@任务数据[0,10]
    #指定怪物HP
    @任务数据[0,12]=rand(任务难度[n].integer)+1
    $game_variables[17]=@任务数据[0,12].round
    #指定怪物MP
    @任务数据[0,13]=rand(任务难度[n])+1
    $game_variables[18]=@任务数据[0,13].round
    #指定怪物攻击力
    @任务数据[0,14]=rand(任务难度[n])+1
    $game_variables[19]=@任务数据[0,14].round
    #指定怪物防御力
    @任务数据[0,15]=rand(任务难度[n])+1
    $game_variables[20]=@任务数据[0,15].round
    #指定怪物精神
    @任务数据[0,16]=rand(任务难度[n])+1
    $game_variables[21]=@任务数据[0,16].round
    #指定怪物敏捷
    @任务数据[0,17]=rand(任务难度[n])+1
    $game_variables[22]=@任务数据[0,17].round
    #稀有度影响额外奖励 算法声望/1000+经验/1000+金钱/1000+物品金钱/1000+
    #装备金钱/1000+武器金钱/1000+指定怪物HP/1000+指定怪物MP/1000+
    #指定怪物攻击/100+指定怪物防御/100+指定怪物精神/100+指定怪物敏捷/100
    @任务数据[0,11]=@任务数据[0,3]/1000+@任务数据[0,4]/1000+@任务数据[0,5]/1000+
        @任务数据[0,6]/1000+@任务数据[0,7]/1000+@任务数据[0,8]/1000+
        @任务数据[0,10]/100+@任务数据[0,11]/1000+@任务数据[0,12]/1000+
        @任务数据[0,13]/1000+@任务数据[0,14]/100+@任务数据[0,15]/100+
        @任务数据[0,16]/100+@任务数据[0,17]/100
         
   
  end
[/code]


derdfyga于2011-9-7 22:58补充以下内容:
每次都到这里"@任务数据[0,12]=rand(任务难度[n].integer)+1"就发生错误,加上integer也没有用.很是无奈.
回复

使用道具 举报

梦石
0
星屑
1547
在线时间
688 小时
注册时间
2009-11-11
回帖
2692
发表于 2011-9-7 23:21:24 | 显示全部楼层
既然叫2唯,那编号也是2唯的拉  ,你 aa[0] 电脑怎么知道是哪一个呢,aa[0,0]这样吧

嘿。嘿。嘿
回复

使用道具 举报

梦石
0
星屑
60
在线时间
386 小时
注册时间
2006-12-10
回帖
206
 楼主| 发表于 2011-9-8 01:14:41 | 显示全部楼层
我用常量数组的值赋给一个二维数组,当然只能@a[1,1]=AAA[1]这样,难道常量数组AAA可以用AAA[1,1]表示??????????????
回复

使用道具 举报

梦石
0
星屑
50
在线时间
543 小时
注册时间
2009-7-13
回帖
56
发表于 2011-9-8 02:38:41 | 显示全部楼层
本帖最后由 nanaka 于 2011-9-8 02:43 编辑

如果你把变量名和常量名改成英文,就不会出这么多问题了……
任务难度 → Difficulty 就不会报错了
退屈すぎ…
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45748
在线时间
7953 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2011-9-8 11:55:19 | 显示全部楼层
分清楚table和数组吧
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部