2016-11-27 41 views
1

我寫了一個小小的瀏覽器遊戲。某處出錯。需要幫助

規則很簡單:您有15秒的時間來決定是否知道屏幕上寫的名字。

你有兩個按鈕:「我知道」/「放棄」 - 取決於你想要選擇什麼。

如果您選擇「放棄」(或時間結束)照片1出現。否則,將顯示照片2。

整個操作是循環的。

這裏是我的問題:我想從數組「單詞」中隨機選擇一個名稱,所以我寫了函數「random_word()」。我把它放到了「timer()」,「投降()」和「獲勝()」的功能中。但它不起作用。

我剛剛開始編程,所以我會很感激可能最容易理解的代碼。感謝所有幫助。

這裏是我的代碼:

<!DOCTYPE html> 
<html> 
<head> 
<style> 

</style> 
<script src="/scripts/snippet-javascript-console.min.js?v=1"></script> 
</head> 
<body> 
<button id= "btnSurrender">give up</button> 

<button id= "btnWinning">i know</button> 

<p id="seconds">15</p> 
<div id="photo"></div> 
<script type="text/javascript"> 


var word = new Array(3); 
word[0] = "Michael"; 
word[1] = "Simon"; 
word[2] = "Peter"; 
word[3] = "Mark"; 

function random_word(){ 
var randomWord = word[Math.floor(Math.random()*word.length)] 
} 




var btn1 = document.getElementById("btnSurrender"); 
var btn2 = document.getElementById("btnWinning"); 
var pic = document.getElementById("photo"); 
var secondsP = document.getElementById('seconds'); 

var clock = null; 


btn1.addEventListener("click", surrender); 
btn2.addEventListener("click", winning); 

function timer() { 

random_word(); 

clearInterval(clock); 

var start = new Date().getTime(); 

clock = setInterval(function() { 



     pic.innerHTML='<img src="" alt="">'; 
     var seconds = Math.round(15 - (new Date().getTime() - start)/1000); 


     if (seconds >= 0) { 
      secondsP.textContent = seconds; 
     } else { 
      clearInterval(clock); 
     } 

     if (seconds === 0) { 
      pic.innerHTML='<img src="mops bops.png" alt="">'; 

     } 
}, 1000); 
} 

function surrender(){ 

clearInterval(clock); 
pic.innerHTML='<img src="mops bops.png" alt="">'; 
secondsP.textContent = 0; 
setTimeout(timer,2000); 
word[Math.floor(Math.random()*word.length)] 
random_word(); 
} 
function winning(){ 

clearInterval(clock); 
pic.innerHTML='<img src="mopsik.jpg" alt="">'; 
secondsP.textContent = 0; 
setTimeout(timer,2000); 
word[Math.floor(Math.random()*word.length)] 
random_word(); 
} 

timer(); 

document.write(randomWord) 
setInterval(timer, 17000) 

</script> 
</body> 
</html> 
+0

'var randomWord'只在函數'random_word()'中定義。這可能是一個範圍問題(其中一個變量是可見的稱爲「範圍」)。在'var randomWord = ...'之後嘗試控制檯日誌。我認爲這條線本身看起來很好。 – amenthes

回答

1
var randomWord; 

您需要在腳本年初箭頭它,給人一種document.write

+0

嗨,我不太明白在腳本開頭應該放什麼,「var randomWord;」或整個「random_word()」函數。在第一種情況下,它說:「未定義」,所以我稱之爲「random_word」函數來定義它。但根本不起作用,就像第二種情況一樣。你能解釋一下你的意思嗎? – wymyszony

0

當我測試你的代碼之前,將其設置爲「randomWord」變量在代碼的開始處有效;你應該這樣做,在代碼的開頭設置變量!

+0

我不知道我做錯了什麼,但總是說「未定義」。我完全是你寫的。我把「var randomWord」放在劇本的第一位。這是我應該做的唯一事情嗎?也許我不明白。我應該額外寫這個變量,還是隻從我的「random_word();」功能。請幫忙。 – wymyszony

+0

這就是它的樣子:https://drive.google.com/file/d/0Bys5fts5-EgiaXdVaW93Q2xjYTQ/view?usp =分享 – wymyszony