時間を測る

クリアまでの時間

解決策その2の続き。

クリアまでの時間を競うというのもゲームのよくあるパターンです。やってみましょう

moveDisk

System.currentTimeMillis()は現在時をミリ秒単位で知らせてくれます。戻り値はintでなくlongです。(実際には1970年1月1日からの現在までの経過時間を返します)

ゲームの最初に

long time0 = System.currentTimeMillis();

として時刻を記録し、ゲームの終わりに、

long time1 = System.currentTimeMillis();

として時刻を再度記録します。

time1-time0

は、かかった時間をミリ秒単位で計測したものになります。つまり16000となれば16秒ということです。

普通は1000で割って秒に直します。

(time1-time0)/1000

longとintの計算なので整数に切り捨てられます。

少数点以下も表現したいときは次のようにします。

(time1-time0)/1000.0

ボタンの表記

いまさらですが、green, blue は斜めの線にしておくと跳ね返りの方向が分かっていいでしょう。全角のバックスラッシュは「きごう」で変換すると出てきます。"/"は「すらっしゅ」を変換してもOKです。

rbtn = new JButton("start");
gbtn = new JButton("\");
bbtn = new JButton("/");

課題

1.

MoveDisk8.javaに書き加えます。

1回のゲームが終わるたびにクリック数と跳ね返り数に加えて、クリアにかかった秒数も表示するようにしなさい。

ファイル名 MoveDisk8.java

もくじ

聖愛高等学校
http://www.seiai.ed.jp/
Last Modified