ストップウォッチ-クリックタイプ

説明

シンプルなストップウォッチです。マウスボタンのクリックまたは画面をタッチすることで計測が開始されます。

マウスボタンをクリックするか画面をタッチするとラップタイムが表示されます。一定回数のラップタイムを表示すると計測が終わります。

Studioで試す

以下のリンクから Jasmine Tea でこのサンプルプログラムを Studio 画面で開いて実際に試すことができます。プログラムを実行したいときは、エディターの右下にある青色の「実行」ボタンを押してください。

Studio で開く

プログラム

// ストップウォッチ。クリックでスタート。クリックでラップタイム表示
cls
print "クリックすると計測開始"
do
  tap x,y
  if x<>-1 then
    exit do
  end if
loop
cls
s=time()
ty=0
do
  t=time()
  n=(t-s)/1000
  locate 0,ty
  print n;"秒    "
  tap x,y
  if x<>-1 then
    ty=ty+1
    if ty>22 then
      exit do
    end if
  end if
loop

解説

プログラムは大きく2つに分かれています。2〜9行目までが計測を開始する前の処理です。クリックされるまで待つ必要があるのでdo...loopを使って無限に繰り返します。クリックしたかどうかはtap命令を使います。クリックされた座標が入る変数xが-1以外ならクリックしたことになるので無限ループから抜けます。do...loopから抜けるにはexit doを使います。これによりloopの次の行に処理が移ります。

11行目で計測開始時間を返すtime()の値を変数sに入れます。time()はプログラムが実行されてからの時間をミリ秒で返します。1秒は1000ミリ秒になります。

12行にある変数tyははラップタイムを表示する文字画面のY座標を入れます。最初は0を入れてあります。0は画面の一番上になります。

13〜25行目までがリアルタイムに時間を表示する部分です。14行目で現在の時間を変数tに入れます。変数tから変数sの値を引き算すれば計測開始からの時間を求めることができます。このままだとミリ秒になってしまうので、1000で割ることで秒数になります。

16行目で表示する秒数のXY座標を指定します。17行目で現在の秒数を表示します。ラップタイムで秒数を表示する際に秒の文字の後に数文字の全角空白を入れてあります。この空白がないと余計な数値や文字が画面に残ったままになります。どういう状態になるかみたいのであれば、この全角空白を削除してみてください。

19〜20行目はマウスのボタンがクリックされるか画面がタッチされたらラップタイムを表示する座標を増やします。これは変数tyの値に1を足すだけです。ただし、ラップタイムは無限に記録するのではなく画面の下まで計測したらループを抜け計測を終了します。ループから抜けるにはexit doを使います。