Project1

标题: 二维数组@a[0,0]=AAA[1]都是整数为何错误? [打印本页]

作者: derdfyga    时间: 2011-9-7 07:24
标题: 二维数组@a[0,0]=AAA[1]都是整数为何错误?
  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

复制代码
不明白为何总是错,知道的请指出一下,谢谢.dsu_plus_rewardpost_czw
作者: 亿万星辰    时间: 2011-9-7 09:06
@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
作者: derdfyga    时间: 2011-9-7 22:53
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补充以下内容:
我把我的原数据贴出来吧.
代码复制
  1. class Vk
  2. 任务难度=[8,16,32,64,128,256,512,1024,2048,4096,8192,16384]
  3.   def 新任务
  4.   #0任务难度,1坐标X,2坐标Y,3获得声望,4获得经验,5获得金钱,6获得物品,
  5.   #7获得装备 8获得武器,9指定怪物  10任务查询费,11稀有度,12指定怪物HP,
  6.   #13指定怪物MP,14指定怪物攻击力,15指定怪物防御,16怪物精神,17怪物敏捷.
  7.     #任务坐标
  8.     @任务数据[0,1]=rand(60)+1
  9.     @任务数据[0,2]=rand(60)+1
  10.     $game_variables[6]=@任务数据[0,1]
  11.     $game_variables[7]=@任务数据[0,2]
  12.     #奖励声望
  13.     @任务数据[0,3]=rand(3)+1
  14.     $game_variables[8]=@任务数据[0,3]
  15.     #奖励经验
  16.     @任务数据[0,4]=rand(80)+20
  17.     $game_variables[9]=@任务数据[0,4]
  18.     #奖励金钱
  19.     @任务数据[0,5]=rand(80)+20
  20.     $game_variables[10]=@任务数据[0,5]
  21.     #奖励物品
  22.     @任务数据[0,6]=rand(10)+1
  23.     $game_variables[11]=@任务数据[0,6].round
  24.     #奖励装备
  25.     @任务数据[0,7]=rand(10)+1
  26.     $game_variables[4]=@任务数据[0,7].round
  27.     #奖励武器
  28.     @任务数据[0,8]=rand(10)+1
  29.     $game_variables[4]=@任务数据[0,8].round
  30.     #指定怪物
  31.     @任务数据[0,9]=rand(10)+1
  32.     $game_variables[4]=@任务数据[0,9].round
  33.     #任务费用
  34.     @任务数据[0,10]=rand(90)+10
  35.     $game_variables[5]=@任务数据[0,10]
  36.     #指定怪物HP
  37.     @任务数据[0,12]=rand(任务难度[n].integer)+1
  38.     $game_variables[17]=@任务数据[0,12].round
  39.     #指定怪物MP
  40.     @任务数据[0,13]=rand(任务难度[n])+1
  41.     $game_variables[18]=@任务数据[0,13].round
  42.     #指定怪物攻击力
  43.     @任务数据[0,14]=rand(任务难度[n])+1
  44.     $game_variables[19]=@任务数据[0,14].round
  45.     #指定怪物防御力
  46.     @任务数据[0,15]=rand(任务难度[n])+1
  47.     $game_variables[20]=@任务数据[0,15].round
  48.     #指定怪物精神
  49.     @任务数据[0,16]=rand(任务难度[n])+1
  50.     $game_variables[21]=@任务数据[0,16].round
  51.     #指定怪物敏捷
  52.     @任务数据[0,17]=rand(任务难度[n])+1
  53.     $game_variables[22]=@任务数据[0,17].round
  54.     #稀有度影响额外奖励 算法声望/1000+经验/1000+金钱/1000+物品金钱/1000+
  55.     #装备金钱/1000+武器金钱/1000+指定怪物HP/1000+指定怪物MP/1000+
  56.     #指定怪物攻击/100+指定怪物防御/100+指定怪物精神/100+指定怪物敏捷/100
  57.     @任务数据[0,11]=@任务数据[0,3]/1000+@任务数据[0,4]/1000+@任务数据[0,5]/1000+
  58.         @任务数据[0,6]/1000+@任务数据[0,7]/1000+@任务数据[0,8]/1000+
  59.         @任务数据[0,10]/100+@任务数据[0,11]/1000+@任务数据[0,12]/1000+
  60.         @任务数据[0,13]/1000+@任务数据[0,14]/100+@任务数据[0,15]/100+
  61.         @任务数据[0,16]/100+@任务数据[0,17]/100
  62.  
  63.  
  64.   end



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

作者: summer92    时间: 2011-9-7 23:21
既然叫2唯,那编号也是2唯的拉  ,你 aa[0] 电脑怎么知道是哪一个呢,aa[0,0]这样吧
作者: derdfyga    时间: 2011-9-8 01:14
我用常量数组的值赋给一个二维数组,当然只能@a[1,1]=AAA[1]这样,难道常量数组AAA可以用AAA[1,1]表示??????????????
作者: nanaka    时间: 2011-9-8 02:38
本帖最后由 nanaka 于 2011-9-8 02:43 编辑

如果你把变量名和常量名改成英文,就不会出这么多问题了……
任务难度 → Difficulty 就不会报错了
作者: fux2    时间: 2011-9-8 11:55
分清楚table和数组吧




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