簡単に反射神経を測定するためにつくってみました。 シンプルで面白いとおもいますよ。
Startボタンを押して、表示のところに「押せ!!」と出た瞬間にStopボタンを押す。それだけです。
StopボタンはStartボタンを押すとStopボタンに変わります 「押せ!!」がでてからの時間と押すまでの時間が[結果]にでます。
だいたい人間が目から認識して脳から命令を出すまで約0.2秒です。 なので、0.2秒〜0.3秒ぐらいで正常だと思います。
ボクは5回平均0.224でした、やればやるほど記録が落ちていくw
JavaScriptの性質上0.01秒までしか測定できません。本来なら0.001まで測定するとよいのですが... 下手すると毎回同じ人がいるかも。
あくまで簡易でこの時間は完全に正確ではありません。 といっても誤差はほとんどありませんけどね^^;
<script type="text/javascript" charset="Shift_JIS">
Flag1=0;
Out="";
Count1=0;
TotalTime="";
Average=0;
StartTime=new Date();
function ReflexTime()
{
for(Q=0;Q<3;Q++){
Byou=Math.floor(Math.random() * 10);
MilliByou=Math.floor(Math.random() * 10);
if(Byou>5 || Byou<2){
Byou=Math.floor(Math.random() * 10);
Q--;
}
}
LimitTime=Number(Byou+"."+MilliByou);
if(Flag1 == 0){
Flag1=1;
document.form1.button1.value = "Stop!";
document.form1.ResultOut.value="";
DownTime();
}else if(Flag1 == 1){
Flag1=0;
document.form1.button1.value = "Start";
clearTimeout(CountDown);
Outcome();
}
}
function DownTime()
{
LimitTime=LimitTime-0.1;
CountDown=setTimeout("DownTime()",100);
if(LimitTime <= 0){
clearTimeout(CountDown);
document.form1.IndicationOut.value="押せ!!";
StartTime=new Date();
}
}
function Shisha(P)
{
keta=3;
Ee=Math.pow(10,keta);
N=(P)*Ee
N=Math.round(N);
N=N/Ee;
return(N);
}
function Outcome()
{
StopTime=new Date();
total=((StopTime-StartTime)/1000);
document.form1.ResultOut.value=total+"秒";
Count1++;
Out=Count1+"回目"+total+"秒\n"+Out;
document.form1.TextOut.value=Out;
TotalTime=Number(TotalTime+total);
Average=TotalTime/Count1;
document.form1.AverageOut.value=Shisha(Average)+"秒";
document.form1.IndicationOut.value="";
}
function Reset()
{
TotalTime=0;
Average=0;
Count1=0;
Out="";
document.form1.ResultOut.value="";
document.form1.AverageOut.value="";
document.form1.TextOut.value="";
}
</script>
<form name="form1">
<input type="button" name="button1" value="Start" onClick="ReflexTime()">
<input type="button" name="button2" value="Reset" onClick="Reset()"><br />
表示<input type="text" size="10" name="IndicationOut"><br />
結果<input type="text" size="10" name="ResultOut"><br />
平均<input type="text" size="10" name="AverageOut"><br />
履歴<br />
<textarea name="TextOut" cols="12" rows="10"></textarea>
</form>
ちょっとは話でも書いてみようかと思ったけど、つくったのが前過ぎて忘れちゃってます。 つくったキッカケはなんとなくだと思いますよ、多分。 ちょっと自分で作って遊んだ記憶があります。
自分がつくったプログラムなのにもう見直す気もありません。 だいたいどの変数が何に使ってるか分かりません、変数を何に使うかメモっておかないとダメですね。 最近は一応つけています。