2010年1月6日水曜日

ルービックキューブの時間を計るPHPスクリプト

ルービックキューブで簡単に時間差を計るソフトが欲しかったのでPHPスクリプトで実装。 大したことはやってませんが、十分な機能になっていると思います。 実際に動かすと以下のように出力されます。
Are you ready? Press enter.>>>
To stop, press enter again.>>>
Span :  ****  13.39122 sec  ****
PHPソースはこんな感じ。
#!/usr/bin/php
<?php
/************************************************************
* ルービックキューブ時間測定 --- qCp                        *
*   このプログラムはエンターキーのみで時間差を計ります       *
* URL : http://www13.atpages.jp/llan/wp/                  *
***********************************************************/
/*>>>>>>>>>> 関数を呼び出した時間差を求める <<<<<<<<<<*/
function timespan()
{
 static $t = false; // 計算に使う基軸タイム
 /* 初動は false を返す */
 if ($t == false) {
  $t = microtime(true);
  return false;
 }
 /*
  * 新旧の差を割り出して、新しい時間に差し替える
  */
 $n = microtime(true);
 $span = $n - $t;
 $t = $n;
 return $span;
}
echo ("Are you ready? Press enter>>>");
fgets(STDIN);
timespan();
echo ("To stop, press enter again>>>");
fgets(STDIN);
$t = timespan();
printf ("Span :  ****  %.5f sec  ****\n", $t);
一行で実行したい場合は
$ php -r 'function ts() { static $t = false; $n = microtime(true); $span = $n - $t; $t = $n; return $span;} echo ("Are you ready? Press enter>>>"); fgets(STDIN); ts(); echo ("To stop, press enter again>>>"); fgets(STDIN); $t = ts(); printf ("Span :  ****  %.5f sec  ****\n", $t);'
と、上記をコピペするだけで実行できます(Unix系では)。 Windowsでは"(ダブルクォーテーション)と'(シングルクォーテーション)をいじる必要があります。

0 件のコメント:

コメントを投稿