Что приводит к сбою или падению этого скрипта в бесконечный цикл? - PullRequest
1 голос
/ 02 марта 2011

Почему кажется, что моя страница переходит в бесконечный цикл при вызове функции dealHands()? Что должно произойти, так это то, что он должен вызвать функцию fetchCard(). Эта функция должна создать случайное число в диапазоне от 0 до 51, а затем выполнить поиск в массиве discardPile, чтобы убедиться, что случайное число не существует в массиве discardPile. Если это не так, функция fetchCard() должна вернуть случайное число обратно в функцию dealHands(), чтобы его можно было присвоить / добавить в массив allHands.

    //Variables
    var discardPile = new Array();
    var allHands = new Array();

    //Prototypes
    Array.prototype.exists = function(search) {
       for(i=0;i<this.length;i++) 
          if (this[i] == search) return true;
       return false;
    }

    //Functions (Only the ones the that are needed for this question)
    function dealHands() {
       var cardsOfHand = new Array()
       for (x=0;x<=1;i++) {
          for (y=0;y<=1;y++) {
             cardsOfHand[y] = fetchCard();
             discardCard(cardsOfHand[y]);
          }
          allHands[x] = cardsOfHand
       }
    }

    function discardCard(card) {
    var totalCards = discardPile.length;
       if (totalCard != 0) { totalCards++ }
       discardPile[totalCards] = card;
    }

    function fetchCard() {
       var usedCard = true;
       while(usedCard == true) {
          var randomCard = Math.floor(Math.random()*51);
          usedCard = discardPile.exists(randomCard);
       }
       return randomCard;
    }

Ответы [ 2 ]

2 голосов
/ 02 марта 2011

for (x=0;x<=1;**i**++)

должно быть х.

2 голосов
/ 02 марта 2011

у вас есть i++ в вашем цикле, а не x++

       for (x=0;x<=1;i++) {
...