iT邦幫忙

0

javascript 抓取時間

大家好,現在正在做一個猜數字1a2b的小遊戲,
現在的問題是沒辦法算出花費的時間,
目前的想法是按猜測按鈕時抓取一次時間,
回答正確在抓取一次時間,
但第二次跟第一次抓的時間總是一樣,
想請問各位有甚麼辦法可以解決這個問題,
麻煩大家個給想法,謝謝各位

<!doctype html><html>
<head>
<title>猜數字</title>
<script>
var str='';
var arr=[];

//設一個三位數並展示
for(i=0; i<3; i++){
	str = Math.round(Math.random()*9);
	for(j=0; j<arr.length; j++){
		if(arr[j]==str){
			arr.splice(j,1);
			i--;
		}
	}
	arr.push(str);
}
document.write("答案:"+arr.join("")+"<br>");

//設定check
function Check(){
	
	//猜測數字+抓取時間
	var num=number.t1.value;
	var time1=new Date().getTime();

	//確認猜測的數字是否重複
	var repeat=false;
	for(var a=0; a<3; a++){
		for(var b=0; b<3; b++){
			if(a!=b && num[a]==num[b]){
				repeat=true;
			}
		}	
	}
	if(repeat){
		alert("數字有重複");
		return;
	}

	//判別答案與猜測數字
	var A=0;
	var B=0;
	for(var c=0; c<3; c++){
		for(var d=0; d<3; d++){
			if(num[c]==arr[d]){
				if(c==d)
				{A++;}
				if(c!=d)
				{B++;}
			}
		}
	}		
	document.getElementById("demo1").innerHTML = A+"A"+B+"B";
	
	//計算花費時間
	if(A==3){
	var time2=new Date().getTime();	
	document.getElementById("demo2").innerHTML =time2-time1 ;
	}
}

</script>
<form name=number>
<input type=text name=t1 size=3 value="">
<input type=button onclick="Check()" value="猜測">
<p id="demo1">結果</p>
<p id="demo2">時間</p>

<body>
<html>

1 個回答

3
海綿寶寶
iT邦大神 1 級 ‧ 2021-11-28 11:45:16
最佳解答

把「設定 time1 的時間點」由「每次點下按鈕」時
改成「一開始顯示完網頁之後」即可
只搬var time1=new Date().getTime();這一列的位置
搬動後結果如下

<!doctype html><html>
<head>
<title>猜數字</title>
<script>
var str='';
var arr=[];
var time1=new Date().getTime();

//設一個三位數並展示
for(i=0; i<3; i++){
	str = Math.round(Math.random()*9);
	for(j=0; j<arr.length; j++){
		if(arr[j]==str){
			arr.splice(j,1);
			i--;
		}
	}
	arr.push(str);
}
document.write("答案:"+arr.join("")+"<br>");

//設定check
function Check(){
	
	//猜測數字+抓取時間
	var num=number.t1.value;

	//確認猜測的數字是否重複
	var repeat=false;
	for(var a=0; a<3; a++){
		for(var b=0; b<3; b++){
			if(a!=b && num[a]==num[b]){
				repeat=true;
			}
		}	
	}
	if(repeat){
		alert("數字有重複");
		return;
	}

	//判別答案與猜測數字
	var A=0;
	var B=0;
	for(var c=0; c<3; c++){
		for(var d=0; d<3; d++){
			if(num[c]==arr[d]){
				if(c==d)
				{A++;}
				if(c!=d)
				{B++;}
			}
		}
	}		
	document.getElementById("demo1").innerHTML = A+"A"+B+"B";
	
	//計算花費時間
	if(A==3){
	var time2=new Date().getTime();	
	document.getElementById("demo2").innerHTML =time2-time1 ;
	}
}

</script>
<form name=number>
<input type=text name=t1 size=3 value="">
<input type=button onclick="Check()" value="猜測">
<p id="demo1">結果</p>
<p id="demo2">時間</p>

<body>
<html>

我要發表回答

立即登入回答