狠狠撸

狠狠撸Share a Scribd company logo
ライントレースで困ったこと
と
キューの話し
光センサーの値を
直近5回分保存したい
2009
どうする?
変数を5個使う
? bright1??1回目
? bright2??2回目
? bright3??3回目
? bright4??4回目
? bright5??5回目
毎回
bright1
bright2
bright3
bright4
bright5 robo.light
プログラムにすると
loop do
bright1 = bright2
bright2 = bright3
bright3 = bright4
bright4 = bright5
bright5 = robo.light
end
スマートでない
キューとスタック
がある!
2014
キュー(待ち行列)
a b c d e
a b c d e
fb c d e
f
追加
取出し
キューの操作
a b c d e f
push
shift
先入れ先出し FIFO
(First In First Out)
Rubyでは配列で
queue = [a, b, c, d, e]
queue << f #または .push
#=> [a, b, c, d, e, f]
queue.shift
#=> a
queue
#=> [b, c, d, e, f]
bright = [10, 20, 30, 40, 50]
loop do
bright << robo.light #または .push
bright.shift
bright
end
プログラムにすると
スマート
スタック
a
b
c
d
e
push
pop
後入れ先出し LIFO
(Last In First Out)
f
ちなみに
bright = [10, 20, 30, 40, 50]
sum = bright.inject(:+)
#=> 150
配列の合計は
inject(畳み込み)で
点と点をつなげる
connecting the dots
~ スティーブ?ジョブズ
スタンフォード大学卒業式 2005Stanford University 2005

More Related Content

ライントレースで役立った「キュー」の话し