查看: 2651|回复: 1

[已经解决] 如何初始化Table

[复制链接]
梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
回帖
550
发表于 2012-9-6 00:05:34 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 wbsy8241 于 2012-9-6 00:18 编辑

Table 里没有clear 用
  1. class Table
  2.   def clear
  3.     xsize.times{|x|ysize.times{|y|zsize.times{|z|self[x,y,z]=0}}}
  4.   end
  5. end
复制代码
这个是手动制作循环代入0

但是如果维度不一样就会报错


菜鸟飞啊飞提问的里面 提到的判断是不是1
http://rpg.blue/forum.php?mod=viewthread&tid=203052
由于默认每维初试都是1
如果生成那维是1就判断不了了
比如 生成 Table.new(5,5,1) 就会被判断为2维
梦石
0
星屑
7095
在线时间
1666 小时
注册时间
2008-10-29
回帖
6612

贵宾

发表于 2012-9-6 10:57:29 | 显示全部楼层
本帖最后由 后知后觉 于 2012-9-6 11:06 编辑


  1. class Table
  2.   def clear
  3.     begin
  4.       self[0,0,0]
  5.       xsize.times{|x|ysize.times{|y|zsize.times{|z|self[x,y,z] = 0}}}
  6.     rescue ArgumentError
  7.       begin
  8.         self[0,0]
  9.         xsize.times{|x|ysize.times{|y|self[x,y] = 0}}
  10.       rescue ArgumentError
  11.         xsize.times{|x|self[x] = 0}
  12.       end
  13.     end
  14.   end
  15. end
  16. a = Table.new(5,5,1)
  17. b = Table.new(5,5)
  18. c = Table.new(5)
  19. a[1,1,0] = 2
  20. b[1,1] = 3
  21. c[1] = 4
  22. msgbox_p a[1,1,0],b[1,1],c[1]
  23. a.clear
  24. b.clear
  25. c.clear
  26. msgbox_p a[1,1,0],b[1,1],c[1]
复制代码

点评

没有简单点的吗  发表于 2012-9-6 17:45











你知道得太多了

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部