2017-02-15 4 views
0

Я попытался разработать игру, но система не всегда работает (тот, где она проверяет, хватит ли у вас золота). Я не могу обойти его, он работает только с большими числами, но не со всеми. Вот код, хотя:Почему система вытаскивания не работает

<!--- Game Of War: Ice Age --> 

<!DOCTYPE html> 
<html> 
<head> 
    <title>Game Of War: Ice Age</title> 
</head> 
<h4 id="gold"></h4> 
<!-- Gain Gold --> 
<img src="file:///C:/Users/Hacker/Pictures/GOW%20-%20Ice%20Age/goldButton.png" height="50" style="border: solid; 5px; black;" width="50" onclick="gainGold()"></img> 

<!-- Barracks --> 
<img src="file:///C:/Users/Hacker/Pictures/GOW%20-%20Ice%20Age/barracks.png" height="50" style="border: solid; 5px; black;" width="50" onclick="training()"></img> 
<body> 
<script type="text/javascript"> 
var gold = 1000000; 
var goldPC = 1; 

<!-- Troop Training Variables --> 
var mammothCost = 5; 
var dinosaurCost = 100; 
var mammoths = 0; 

function gainGold(){ 
    gold += goldPC; 

} 

function training(){ 
    train = prompt("Train Troops!") 
    if (train == "Mammoths") { 
     alert("Train Mammoths") 
     amount = prompt("How Many Mammoths Do You Want To Train?") 
     takeaway = mammothCost * amount; 
     if (gold - takeaway <= 0){ 
      alert("You Do Not Have Enough Gold!") 
      training() 
     } 
     mammoths = amount += mammoths 

     gold -= takeaway 


    } 
} 

<!-- SetIntervalSettings --> 

setInterval(function renderGold(){ 
    document.getElementById('gold').innerHTML = "Gold: " + gold; 
}); 


</script> 

</body> 
</html> 
+0

@all - Изображения прекрасно работают btw –

+0

img.src = img.src.replace («Хакер», «ScriptKiddie»); .... –

+0

@ Jonasw почему ты сказал это ??? –

ответ

0
mammoths = amount += mammoths; 

Так вы назначаете мамонтов на сумму, которая была увеличена с мамонтами ?? Вы можете:

mammoths += +amount; 

Дополнительный плюс преобразует его в ряд (входы строки!) Таким образом, вы также можете добавить + перед каждой строкой ...

val=+prompt("this string is converted to number!"); 

И может потребоваться прекратить выполнение, если не хватает золота:

 if (gold - takeaway <= 0){ 
      alert("You Do Not Have Enough Gold!") 
      setTimeout(training); 
      return; 
     } 

SetTimeout это просто стиль вещь ...

+0

Эй, спасибо за ответ - он все еще не работает. Я не уверен, знаете ли вы, что я имею в виду, поэтому я буду объяснять; –

+0

Он работает (вычитая золото), но подразумевается, что вы тоже говорите, если у вас недостаточно золота для обучения определенной суммы. К сожалению, это не сработает. Спасибо за ответ так быстро, хотя, 6 минут - невероятно! –

+0

@TobyBridle oh. даже если вы передадите if (так неправильно), выполнение функции не останавливается. updated –

1

Мое предположение горе uld будет функция prompt(), возвращающая строку, что смущает следующую математику. Запуск результата через parseInt() вернет целое число.

Javascript становится очень разборчивым, когда дело доходит до автоматического преобразования типа переменной.

+0

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

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