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

2014/02/23

~if (イフ)と ask(アスク)で マルバツ クイズをやってみよう~

piroko_jaran_ssask(アスク|聞く)とif(イフ|もし~なら)を使えば、かんたんなクイズつくって、正解(せいかい)ならピポパ、不正解(ふせいかい)ならブーを鳴らすなど、クイズの答えによってロボットに別の動きをさせることができます。

エディタに下のプログラムを入れて「動かす」ボタンをクリックしましょう。


ask "1 + 1 = ?"

1 + 1 = ? と書かれた四角が出ましたね。この四角の中には答えを入れる場所もあります。このように、askを使うと、” “で囲(かこ)まれたぶぶんの答えを聞くことができます。

次に、下のプログラムを入れてみましょう。


kotae = ask "1 + 1 = ?"

if kotae == 2
  puts "maru"
else
  puts "batu"
end

「動かす」ボタンをクリックすると「1 + 1 」を聞く画面が出るので、そこに答えを入れて「OK」ボタンをクリックしましょう。2を入れると、右側の「出力」タブに maru(マル)が出ます。2いがいを入れると batu(バツ)が出ることを確かめましょう。

プログラムのせつめい

1行目

“1 + 1 = ?” の答えを聞く四角をだして、答えを kotae という名前のついた箱に入れる。

3行目

== は「左と右が同じかくらべなさい」という命令。もし(if)、kotae という名前のついた箱に入っている答えが2と同じなら、else(エルス)の前までの命令をやりなさい。

5行目

else(エルス)は、そうではないときは、という意味。つまり、答えが2でないときは、end(エンド)の前までの命令をやりなさい。

ロボットを使った○×ゲームをやってみましょう。

下のプログラムを入れて「動かす」ボタンをクリックしましょう。COM3の部分はペアリングの手順で調べた番号にします。


require "mi100"

robo = Mi100.new "COM3"

kotae = ask "1 + 1 = ?"

if kotae == 2
  robo.good
  robo.blink
  robo.movef
else
  robo.bad
end

robo.close

プログラムのせつめい

1行目~3行目

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

5行目から13行目

「1 + 1 」の質問に2と答えたら、ロボットは「ピポパ」と音を鳴らして光り、前進します。2と答えなかったら、つまらなそうに「ブー」と鳴ります。

おわり