[#6214] RE^2: HTML class — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-list:6118] Re: HTML class
[#6219] Ruby連載 第4話 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
原です。
まつもと ゆきひろです
原です。
ももちゃん@あるもにこすです.
まつもと ゆきひろです
In message <199802040557.OAA18458@picachu.netlab.co.jp>
まつもと ゆきひろです
In message <199802040739.QAA20750@picachu.netlab.co.jp>
まつもと ゆきひろです
In message <199802040803.RAA24375@picachu.netlab.co.jp>
[#6249] Re: i++ — 助田 雅紀 <masaki.suketa@...>
助田です。
ことけんです
まつもと ゆきひろです
しげひろです.
ももちゃん@あるもにこすです.
まつもと ゆきひろです
ももちゃん@あるもにこすです.
まつもと ゆきひろです
[#6256] pop & smtp-lib.rb — tateishi@... (Takaaki TATEISHI)
立石@理科大です。
[#6272] I'd like to subscribe this ML — INOUE Katsuyuki <inoue@...>
井上勝行 と申します。
[#6279] Re: i++ — 助田 雅紀 <masaki.suketa@...>
助田です。
[#6314] RE: ruby's design policy (Re: I'd like to subscr ibe this ML) — 助田 雅紀 <masaki.suketa@...>
オブジェクト指向周辺をぶらぶらしている助田です。
まつもと ゆきひろです
井上勝行です。
まつもと ゆきひろです
[#6315] install some versions — gotoken@... (GOTO Kentaro)
ごとけんです
[#6333] ruby 流に添削して下さい — nkon@...2.3web.ne.jp
さくです.
さくです.自己フォロー.
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
わたなべです.
[#6342] Re: ruby's design policy (Re: I'd like to su bscr ibe this ML) — 助田 雅紀 <masaki.suketa@...>
助田です。
[#6372] ruby 1.1b7 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
前田です。
わたなべです.
ふなばです。
まつもと ゆきひろです
ふなばです。
[#6373] call for scripts — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
> もっと良いものがあるかもしれないと考え,実例集に載せられるよ
sort-schedule.rbで、ちょっと疑問に思っていることがあるのです
金城です.
まつもと ゆきひろです
金城です.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
原です。
From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>
きくたに@ぷ〜たろ〜です。
さくです.
わたなべです.
まつもと ゆきひろです
前田です。
前田です。
まつもと ゆきひろです
前田です。
前田です。
前田です。
前田です。
わたなべです.
ふなばです。
In message <19980222011624S.tadf@kt.rim.or.jp>
前田です。
ふなばです。
ふなばです。
けいじゅ@日本ラショナルソフトウェアです.
Regard to "[ruby-list:7447] Re: call for scripts"
[#6422] simple_chat_server — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-list:6395] Re: call for scripts
[#6447] gsub — Tadayoshi Funaba <tadf@...>
ふなばです。
[#6514] ROT13/47 — OZAWA Sakuro <crouton@...>
小澤さくです.
[#6516] RE^2: simple_chat_server — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-list:6437] Re: simple_chat_server
まつもと ゆきひろです
class String; def - x; end; end; %-
[#6538] IE favorites to HTML — OZAWA Sakuro <ozawa@...>
小澤さくです。会社からもMLに入っちゃいます。
[#6565] Re: Counter class [Re: i++ ] — toyofuku@...
豊福@パパイヤです。
[#6582] File::Separator on cygwin — OZAWA Sakuro <ozawa@...>
小澤さくです。
わたなべです.
小澤さくです。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#6591] ruby 1.1b8 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
前田です。
けいじゅ@日本ラショナルソフトウェアです.
前田です。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
さくです.
前田です。
小澤さくです。
うさぎの名前ででています:-)
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#6601] 8-queen — TAKAHASHI Masayoshi <maki@...>
高橋です。今度ちゃんと1.1b7にします……と書こうとしたら、b8になって
[#6605] true/TRUE false/FALSE nil/NIL — OZAWA Sakuro <crouton@...>
小澤さくです.
前田です。
まつもと ゆきひろです
[#6610] tcltklib dosen't compile — TEI meiki <tei@...>
鄭です。
[#6621] here document — Tadayoshi Funaba <tadf@...>
ふなばです。
[#6635] hello — WATANABE Tetsuya <tetsu@...>
渡辺哲也と申します。
まつもと ゆきひろです
>>>>> "matz" == Yukihiro Matsumoto <matz@netlab.co.jp> writes:
[#6706] Re: Counter class — toyofuku@...
豊福@パパイヤです。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[#6735] Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda)
前田です。
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
前田です。
From: shugo@po.aianet.ne.jp (Shugo Maeda)
前田です。
From: shugo@po.aianet.ne.jp (Shugo Maeda)
前田です。
まつもと ゆきひろです
[#6786] Re: Mutex/ConditionVariable/Queue — senda@...
From: shugo@po.aianet.ne.jp (Shugo Maeda)
前田です。
前田です。
前田です。
けいじゅ@日本ラショナルソフトウェアです.
In message <199802261520.AAA18702.keiju@cupmail0.rational.com>
前田です。
In message <199802270237.CAA00362@soleil.localnet.or.jp>
前田です。
In message <199802270635.GAA00354@soleil.localnet.or.jp>
前田です。
[#6819] ruby 1.1b9 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#6829] monitor.rb — shugo@... (Shugo Maeda)
前田です。
[#6830] what is 'octet decimal' — OZAWA Sakuro <crouton@...>
さくです.
[#6852] Counting Semaphore — Kazuhisa YANAGAWA <katze@...>
Counting semaphore をちょっと作ってみました. 見ての通り, コードは
[ruby-list:6611] Game of Life (Re: call for scripts)
前橋です。サイン本コンテスト(?)に応募します。
tk によるライフゲームです。
有名なので知っていると思いますが、碁盤の目上に配置された生命体が、一定
のルールにしたがって生成/消滅を繰り返していく様を見て楽しむというもの
です。ルールは、
・ある生命体の周囲 8つのマス目のうち 2つあるいは 3つに生命体が存在すれ
ば生き残るがそれ以外では過疎あるいは過密で死んでしまう
・空いている場所の周りにちょうど 3つの生命体がいれば、そこに新しい生命
体が生まれる
です。
使い方は起動すればわかるでしょう。マウスで盤面をクリックすることにより
配置/除去ができます。
# サーチエンジンでライフゲームを調べたら、Java アプレットのライフゲー
# ムが山のようにでてきた。。。
----------------------------------------------------------------------
#! /usr/local/bin/ruby
# Game of Life
require "tk"
class LifeGame
def initialize(width=80, height=23)
@width = width
@height = height
default = [-width-1, -width, -width+1, -1, 1, width-1, width, width+1]
@neighbors = []
@neighbors.fill(default, 0, width*height)
(0..width*height-1).each {|i|
x = i % width
y = i / width
if x == 0
@neighbors[i] = [-width, -width+1, 1, width, width+1]
elsif x == @width-1
@neighbors[i] = [-width-1, -width, -1, width-1, width]
end
if y == 0
@neighbors[i] = @neighbors[i].clone
@neighbors[i].delete_if {|v| v < -1}
elsif y == @height-1
@neighbors[i] = @neighbors[i].clone
@neighbors[i].delete_if {|v| v > 1}
end
}
@grid = {}
center = height / 2 * width + width / 2
@grid[center] = true
@grid[center+1] = true
@grid[center+width] = true
@grid[center+width-1] = true
@grid[center+width+width] = true
end
def nextgen
n = {}
@grid.each_key {|i|
n[i] += 0
@neighbors[i].each {|pos| n[i+pos] += 1}
}
n.each {|i, n|
@grid[i] = if (n == 3 || @grid[i] && n == 2) then true else nil end
}
end
def run
loop {
display
nextgen
break unless gets
}
end
def display
s = ' ' * (@width * @height)
@grid.each_key {|i| s[i,1]='*'}
print s, "\n"
end
end
class TkLifeGame < LifeGame
include Tk
def initialize(width=80, height=80, rectsize=6)
super(width, height)
@rectsize = rectsize
@goflag = false
@canvas = TkCanvas.new(nil,
'width'=>width * rectsize,
'height'=>height * rectsize,
'borderwidth'=>1,
'relief'=>'sunken')
@nextbutton = TkButton.new(nil,
'text'=>'next',
'command'=>proc {nextgen; display})
@gobutton = TkButton.new(nil,
'text'=>'go',
'command'=>proc {
@goflag = !@goflag
if @goflag
@gobutton.text 'stop'
go
else
@gobutton.text 'go'
end
})
@quitbutton = TkButton.new(nil,
'text'=>'quit',
'command'=>proc {exit})
@canvas.pack
@nextbutton.pack('side'=>'left')
@gobutton.pack('side'=>'left')
@quitbutton.pack('side'=>'right')
@prevgrid = {}
@rectangles = {}
@canvas.bind '1', proc {|x, y|
i = x / @rectsize + y / @rectsize * @width
if @grid[i]
@grid[i] = nil
else
@grid[i] = true
end
display
update
}, '%x %y'
end
def go
nextgen
display
update
if @goflag
after 0, proc {go}
end
end
def run
display
mainloop
end
def display
@grid.each_key {|i|
if @prevgrid[i]
@prevgrid[i] = nil
else
setrect(i)
end
}
@prevgrid.each_key {|i|
resetrect(i)
}
@prevgrid = @grid.dup
end
def setrect(i)
x = i % @width
y = i / @width
@rectangles[i] = TkcRectangle.new(@canvas,
x * @rectsize,
y * @rectsize,
x * @rectsize + @rectsize - 2,
y * @rectsize + @rectsize - 2,
'fill'=>'black')
end
def resetrect(i)
@rectangles[i].destroy
@rectangles[i] = nil
end
end
#g = LifeGame.new
g = TkLifeGame.new
g.run