#javascript
Вопрос:
Поэтому, в основном, всякий раз, когда я запускаю свой код, он длится вечно и делает replit.com не реагирует. Когда я комментирую весь свой javascript, он работает, и он не работает вечно. Обычно он сообщал мне в консоли, что у меня возникла проблема, например, я поставил много скобок или у него была неожиданная строка. Но у меня никогда не было такого перепутанного кода, чтобы он рухнул replit.com. Есть ли что-то, что происходит вечно в моем коде? Я знаю, что это не так replit.com потому что я тестировал на другом репле, и этот репл сработал. кстати, вот мой код
Редактировать: Поэтому я больше экспериментировал, и когда я убираю фотографии, они загружаются, просто без очевидных изображений. Когда я снова добавил картинку, она не работает. Картинки раньше работали, так что я думаю, что это дисплей.updateUpgrades. Я должен был также предварить это после того, как я поставил дисплей.updateUpgrades, когда он перестал работать
let game = {
score: 0,
totalScore: 0,
totalClicks: 0,
clickValue: 1,
version: 0.000,
addToScore: function (amount) {
this.score = amount;
this.totalScore = amount;
display.updateScore();
},
getScorePerSecond: function () {
var scorePerSecond = 0;
for (var i = 0; i < building.name.length; i ) {
scorePerSecond = building.income[i] * building.count[i]
}
return scorePerSecond
}
};
let building = {
name: [
"miningLevel",
"Miners",
"Mining Warehouse",
"Hackers"
],
image: [
"pickaxe.png",
"miner.png",
"MiningWarehouse.jpeg",
"Hacker.jpg"
],
count: [0, 0, 0, 0],
income: [
10,
20,
30,
40
],
cost: [
25,
100,
500,
1000
],
purchase: function (index) {
if (game.score >= this.cost[index]) {
game.score -= this.cost[index];
this.count[index] ;
this.cost[index] = Math.ceil(this.cost[index] * 1.10);
display.updateScore();
display.updateShop();
display.updateUpgrades();
}
}
}
let upgrade = {
name : [
"Better Picks"
],
description: [
"Picks mine twice the amount of bitcoin"
],
image:[
"goldPickaxe.png"
],
type: [
"building"
],
cost: [
1000
],
buildingIndex: [
0
],
requirement: [
10
],
bonus: [
2
],
purchased:[false],
purchase: function (index) {
if(!this.purchased[index] amp;amp; game.score >= this.cost[index]) {
if (this.type[index] == "building" amp;amp; building.count[this.buildingIndex[index]] >= this.requirement[index]) {
game.score -= this.cost[index];
building.income[this.buidlingIndex[index] *= this.bonus[index]];
this.purchased[index] = true;
display.updateUpgrades();
display.updateScore();
} else if (this.type[index] == "click" amp;amp; game.totalClicks >= this.requirement[index]) {
game.score -= this.cost[index];
game.clickValue *= this.bonus[index];
this.purchased[index] = true;
display.updateUpgrades();
display.updateScore();
}
}
}
};
var display = {
updateScore: function () {
document.getElementById("score").innerHTML = game.score;
document.getElementById("scorepersecond").innerHTML = game.getScorePerSecond()
document.title = "Bitcoin Simulator"
},
updateShop: function () {
document.getElementById("shopContainer").innerHTML = " ";
for (var i = 0; i < building.name.length; i ) {
document.getElementById("shopContainer").innerHTML = '<table class="shopButton unselectable" onclick="building.purchase(' i ')"><tr><td id"image"><img src="' building.image[i] '"></td> <td id="nameAndCost"> <p>' building.name[i] '</p> <p><span>' building.cost[i] '</span> Bitcoin</p> </td> <td id="amount"><span>' building.count[i] '<span></td></tr> </table>';
}
},
updateUpgrades: function() {
document.getElementById("upgradeContainer").innerHTML = " ";
for (var i = 0; i < upgrade.name.length; i ) {
if (!upgrade.purchased[i]) {
if (upgrade.type[i] == "building" amp;amp; building.count[upgrade.buildingIndex[i]] >= upgrade.requirement[i]) {
document.getElementById("upgradeContainer").innerHTML = '<img src="' upgrade.image[i] '" title="' upgrade.name[i] ' amp;#10;' upgrade.description ' $#10; (' upgrade.cost[i] ' bitcoin)" onclick="upgrade.purchase(' i ')">';
} else if (upgrade.type[i] == "click" amp;amp; game.totalClicks >= upgrade.requirement[index]){
document.getElementById("upgradeContainer").innerHTML = '<img src="' upgrade.image[i] '" title="' upgrade.name[i] ' amp;#10;' upgrade.description ' $#10;(' upgrade.cost[i] ' bitcoin)" onclick="upgrade.purchase(' i ')">';
}
}
}
}
}
function saveGame() {
var gameSave = {
score: game.score,
totalScore: game.totalScore,
totalClicks: game.totalClicks,
clickValue: game.clickValue,
version: game.version,
buildingCount: building.count,
buildingIncome: building.income,
buildingCost: building.cost,
upgradePurchased: upgrade.purchased
};
localStorage.setItem("gameSave", JSON.stringify(gameSave))
}
function loadGame() {
let savedGame = JSON.parse(localStorage.getItem("gameSave"));
if (localStorage.getItem("gameSave") !== null) {
if (typeof savedGame.score !== "undefined") game.score = savedGame.score;
if (typeof savedGame.totalScore !== "undefined") game.totalScore = savedGame.totalScore;
if (typeof savedGame.totalClicks !== "undefined") game.totalClicks = savedGame.totalClicks;
if (typeof savedGame.clickValue !== "undefined") game.clickValue = savedGame.clickValue;
if(typeof savedGame.buildingCount !== "undefined") {
for( var i = 0; i < savedGame.buildingCount.length; i ) {
building.count[i] = savedGame.buildingCount[i];
}
}
if (typeof savedGame.buildingIncome !== "undefined") {
for (var i = 0; i < savedGame.buildingIncome.length; i ) {
building.income[i] = savedGame.buildingIncome[i];
if (typeof savedGame.buildingCost !== "undefined") {
for (var i = 0; i < savedGame.buildingCost.length; i ) {
building.cost[i] = savedGame.buildingCost[i]
}
}
if(typeof savedGame.upgradePurchased !== "undefined") {
for (var i = 0; i < savedGame.upgradePurchased.length; i ) {
upgrade.purchase[i] = savedGame.upgradePurchased[i];
}
}
}
}
}
}
function resetGame() {
if (confirm("Are you sure you want to reset your game")) {
let gameSave = { }
localStorage.setItem("gameSave", JSON.stringify(gameSave));
location.reload();
}
}
document.getElementById("clicker").addEventListener("click", function() {
game.totalClicks ;
game.addToScore(game.clickValue building.count[0])
}, false)
window.onload = function () {
loadGame();
display.updateScore();
display.updateUpgrades();
display.updateShop();
};
setInterval(function () {
game.score = game.getScorePerSecond();
game.totalScore = game.getScorePerSecond();
display.updateScore();
}, 1000)
setInterval(function() {
display.updateScore();
display.updateUpgrades();
},10000)
setInterval(function () {
saveGame();
}, 3000);
document.addEventListener("keydown", function(event) {
if (event.ctrlKey amp;amp; event.which == 83) {
event.preventDefault();
saveGame();
}
}, false);
Сри его 200 строк.
Комментарии:
1. Работает ли это локально? Он разбивается?
2. @PyxlDavon что вы имеете в виду на местном уровне? Редактировать: если вы имеете в виду, например, использовать блокнот, я не могу, потому что я использую хромбук
3. У chromebook нет какого-либо локального сервера? Потому что это было бы довольно невероятно.
4. @Mike’Pomax’Camermans уточняет, что вы подразумеваете под локальным сервером, но в хромбуках нет ничего похожего на блокнот
5. зачем вам блокнот, если код VS отлично работает на chromebook?
Ответ №1:
Итак, произошло то, что одна из моих функций if находилась в функции if, хотя она не должна была находиться в этой функции if. Сейчас все работает нормально
Комментарии:
1. Тогда это звучит так, как будто вы решили свою собственную проблему, затратив максимум несколько часов на отладку: стоит снова удалить свой вопрос.