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

〜まわる回数を1ずつふやしてみよう〜

piroko_jaran_ss前回はeachを使って回転する秒数を変えました。今回は1回転、2回転、3回転というように、まわる回数を1ずつふやすやり方をみてみましょう。数を1ずつふやすには、どうしたらよいでしょう。

 

 

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

num = 0
puts num
num = num + 1
puts num

0
1

プログラムのせつめい

1行目

numという名前のついた箱に0を入れる

2行目

numに入っている値(あたい)を表示しなさい

3行目

numに入っている値に1を足して、numに入れなおしなさい

4行目

numに入っている値を表示しなさい

2行目と4行目はどちらも「puts num」ですが、出力される数は違います。2行目の命令で表示されるのは0ですが、3行目で1を加えているため4行目の命令で表示されるのは1です。このように、同じ箱に別の値を入れなおすことで、箱の中身(なかみ)は変わっていきます。

では、1から5までの連続(れんぞく)した整数を表示するにはどうしたらよいでしょう。
そう、くり返しの命令 x.times doを使えばできますね。

num = 0
5.times do
  num = num + 1
  puts num
end

1
2
3
4
5

チャレンジ

次のプログラムでも上と同じ結果が得られることを確認しよう。

5.times do |n|
  puts n + 1
end

このプログラムでは、nに0、1、2、3、4を順番に入れなおしながら、くり返しが行われます。

ロボットで動きを確認しよう

数を1ずつふやして行くやり方を使って、ロボットのまわる回数を変えてみよう。

require "mi100"

robo = Mi100.new "COM3"

num = 0

5.times do
  num = num + 1
  num.times do
    robo.spin "right",500
 end
 sleep 1
end

robo.close

プログラムのせつめい

1行目~3行目

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

5行目

numという名前のついた箱に0を入れなさい

7行目

do(7行目)とend(13行目)の間にある命令を5回くり返しなさい

8行目

numに入っている値に1を足して、numに入れなおしなさい

9行目~11行目

numに入っている数だけ、ロボットを右回転させなさい

12行目

1秒、休みなさい

8行目から12行目が5回くり返され、そのたびに回る回数が1ずつふえていきます。

おわり