~Time.now(タイムナウ)でジャストタイムゲームをやってみよう~
Time.now を使うと、現在時刻(げんざじこく)を調べることができます。今回はこれを利用して、ジャストタイムゲームをやってみましょう。
エディタに下のプログラムを入れて「動かす」ボタンをクリックしましょう。
t = Time.now puts t
右側の「出力タブ」に、次のような表示が出ましたね。下の例は、2014年3月12日10時15分50秒を表しています。右はしの「+0900」は、日本の標準時間(ひょうじゅんじかん)であることを示しています。
2014-03-12 10:15:50 +0900
次に、alert と Time.now を使ってストップウォッチを作ってみましょう。エディタに下のプログラムを入れて「動かす」ボタンをクリックしてください。
alert "start" t1 = Time.now alert "stop" t2 = Time.now jikansa = t2 -t1 puts jikansa
プログラムのせつめい
1行目
start(スタート)と書いてある四角い箱を出す。「OK」を押すと次の命令が動きます。
2行目
Time.nowで現在時刻(げんざいじこく)を調べて、t1という名前のついた箱に入れる。
3行目
stop(ストップ)と書いてある四角い箱を出す。「OK」を押すと次の命令が動きます。
4行目
Time.nowで現在時刻(げんざいじこく)を調べて、t2という名前のついた箱に入れる。
5行目
「t2 – t1」で、スタート時刻の t1 とストップ時刻の t2 の差(さ)を計算し、jikansa という名前のついた箱に入れる。
6行目
jikansa に入っている時刻の差を右側の出力タブに表示しなさい。
上のプログラムでは、右側の出力タブに「2.447204」のような7桁(けた)の数が表示されます。round を使えば、小数点以下(しょうすうてんいか)を四捨五入(ししゃごにゅう)して、整数(せいすう)に変えることができます。
上のプログラムの最後の行を次のように変えてみましょう。
puts jikansa.round
これで、「2」や「3」のような整数(せいすう)が表示されるようになります。
ヒント
四捨五入
4以下の数字を切りすて、5以上の数字を上の位(くらい)に切り上げることを四捨五入(ししゃごにゅう)といいます。たとえば、2.4 を四捨五入すると、4 を切りすてるので 2 になります。2.5 なら、5 を切り上げて 3 になります。
整数
…-3、-2、-1、0、1、2、3…というように、0から1ずつ増えたり減ったりしていってできる数のことを整数(せいすう)といいます。
ロボットを使ったジャストタイムゲームをやってみましょう。
alertでstart(スタート)とstop(ストップ)画面を出します。スタート画面で「OK」を押してから、ぴったり5秒後にストップ画面で「OK」ボタンを押せば正解(せいかい)。ロボットがピポパと鳴ります。
下のプログラムを入れて「動かす」ボタンをクリックしましょう。COM3の部分はペアリングの手順で調べた番号にしてくださいね。
require "mi100" robo = Mi100.new "COM3" alert "start" t1 = Time.now robo.good robo.spinr alert "stop" t2 = Time.now jikansa = t2 -t1 puts jikansa.round if jikansa.round == 5 puts "maru" robo.good else puts "batu" robo.bad end robo.close
プログラムのせつめい
1行目~3行目
ロボットを無線で動かせるようにするための、いつものステップですね。
5行目
startと書いてある四角い箱を出す。「OK」ボタンを押すと、次の命令が動きます。
10行目
stopと書いてある四角い箱を出す。「OK]ボタンを押すと、次の命令が動きます。
13行目
「t2 – t1」で、スタート時刻の t1 とストップ時刻の t2 の差(さ)を計算し、答えを jiikansa という名前の付いた箱に入れる。
14行目
jikansa に入っている数を整数にして、出力タブに表示しなさい。
16行目
時刻の差が5と同じなら、”maru” を表示し、ロボットはピポパと鳴る。5以外なら “batu” を表示し、ロボットはブーと鳴る。
おわり