[#41630] [ANN] langhelp-0.9.0 — rubikitch@...
るびきちです。
7 messages
2005/12/01
[#41654] Hashを継承したクラスの利用方法について — saitani <cxj15527@...>
お世話になります。
9 messages
2005/12/04
[#41720] Tempfile#== — とみたまさひろ <tommy@...>
とみたです。
5 messages
2005/12/21
[#41728] ruby 1.8.4 released — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
9 messages
2005/12/24
[ruby-list:41696] Re: Ruby本のlifegame
From:
WATANABE Hirofumi <eban@...>
Date:
2005-12-11 05:40:07 UTC
List:
ruby-list #41696
わたなべです。
Norio Kobayashi <ncoba@par.odn.ne.jp> writes:
> def nextgen
> n = {}
> @lives.each_key {|geom| # (1)
> n[geom] ||= 0
> @neighbors[geom.y][geom.x].each {|pos|
> n[geom+pos] ||= 0
> n[geom+pos] += 1
> }
> }
> n.each {|geom, count|
> if count == 3 || @lives[geom] && count == 2
> @lives[geom] = true
> else
> @lives[geom] = nil # (2)
> end
> }
> end
>
> (2) のところで、「生物が存在しない」として nil を代入していますが、
> (1) で全てのキーに対して、すなわち、生物が存在しない所(nil)も、
> 生物が存在するとして計算してしまっているので、これだとうまくいかないと
> 思うのですが…。
その本が出たころのRubyはまだ1.4.xだったと思いますが、
1.4.xまではnilを代入することでキーを削除するという
仕様になってました。
% ruby-1.4.6 -ve 'h = {"a"=>1}; h["a"] = nil; p h'
ruby 1.4.6 (2000-08-30) [i586-linux]
{}
% ruby-1.6.0 -ve 'h = {"a"=>1}; h["a"] = nil; p h'
ruby 1.6.0 (2000-09-19) [i586-linux]
{"a"=>nil}
--
わたなべひろふみ