解決策その2の続き。
クリアまでの時間を競うというのもゲームのよくあるパターンです。やってみましょう
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("/");
MoveDisk8.javaに書き加えます。
1回のゲームが終わるたびにクリック数と跳ね返り数に加えて、クリアにかかった秒数も表示するようにしなさい。