2016-11-27 3 views
1

Я написал небольшую браузерную игру.Маленькая ошибка где-то. Необходимая помощь

Правила легки: у вас есть 15 секунд, чтобы решить, знаете ли вы имя, записанное на экране.

У вас есть две кнопки: «Я знаю»/«сдаюся» - зависит от того, что вы хотите выбрать.

Если вы выберете «сдаться» (или закончится время), появится фотография 1. В противном случае будет показано фото 2.

Вся операция выполнена в виде петли.

Вот мой вопрос: я хотел выбрать случайное имя из массива «word» каждый раунд, поэтому я написал функцию «random_word()». Я помещал его в функции «timer()», «surrender()» и «win()». Но это не сработает.

Я только начинаю с программирования, поэтому буду благодарен за возможно самый простой способ понять код. Спасибо за помощь.

Вот мой код:

<!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(). В первом случае он говорит: «undefined», поэтому я назвал функцию «random_word» для ее определения. Но это не работает вообще, как во втором случае. Можете ли вы объяснить, что вы имели в виду, пожалуйста :)? – wymyszony

0

Когда я тестировал свой код и установите его в положение «randomWord» переменная в начале кода, она сработала; Вы должны сделать то же самое, установите переменную в начале кода!

+0

Я понятия не имею, что я делаю неправильно, но он всегда говорит «undefined». Я сделал именно то, что вы написали. Я поставил «var randomWord» в первую очередь скрипта. Это единственное, что я должен делать? Может быть, я не понял. Должен ли я дополнительно писать эту переменную или просто вытащить ее из своего «random_word()»? функция. Пожалуйста помоги. – wymyszony

+0

Вот как это выглядит: https://drive.google.com/file/d/0Bys5fts5-EgiaXdVaW93Q2xjYTQ/view?usp=sharing – wymyszony

 Смежные вопросы

  • Нет связанных вопросов^_^