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