子どもRubyプログラミング講座「ロボット編」第15回

~いろんな長さで回転させてみよう~ each

piroko_jaran_ss今回はeach(イーチ)を使った繰り返しで、ロボットが回転する秒数を変えてみましょう。第6回でも登場しているeachですが、使い方のおさらいをしておきましょうね。

 

 

次のプログラムをエディタに入れて「動かす」ボタンを押してみてください。


fruits = ["りんご", "みかん", "バナナ"]

fruits.each do |fru|
  puts "私は" + fru + "が好きです"
end

私はりんごが好きです
私はみかんが好きです
私はバナナが好きです

プログラムのせつめい

1行目

fruitsという名前のついた箱に、「りんご」、「みかん」、「バナナ」を入れておきます。
箱にたくさんの中身が入っているものを配列(はいれつ)といいます。

3行目

fruitsの中身を順番に取り出して次の命令をやりなさい。each do(イーチドゥー)は、endまでの命令を順にやりなさい、という意味でしたね。fruは箱の中身をしめしています。

4行目

私はfruが好きです、と表示しなさい。fruには配列の中身が順に入ります。

ロボットを使って動きを確認しよう

eachを使った繰り返しで、ロボットの回転する長さを変えていってみよう。どんなプログラムになるかな。


require "mi100"

robo = Mi100.new "COM3"

nagasa = ["500","1000","1500","2000"]

nagasa.each do |ms|
  robo.spin "right", ms
  sleep 0.5
end

robo.close

プログラムのせつめい

1行目~3行目

ロボットを無線で動かせるようにするための、いつものステップですね。

5行目

nagasaという名前のついた箱に、回転させたい秒数を入れておきます。

7行目

nagasaに入っているそれぞれの秒数ごとにendまでの命令をやりなさい。

8行目~9行目

それぞれの秒数で回転させ、0.5秒休みなさい。
500ミリ秒まわって0.5秒休み、1000ミリ秒まわって0.5秒休みというように繰り返しが行われます。

おわり