Что случилось с моим кодом, который делает replit.com авария?

#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. Тогда это звучит так, как будто вы решили свою собственную проблему, затратив максимум несколько часов на отладку: стоит снова удалить свой вопрос.