Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Моя "пятнашка"...не работает (https://javascript.ru/forum/css-html/25405-moya-pyatnashka-ne-rabotaet.html)

Angie 04.02.2012 13:07

Моя "пятнашка"...не работает
 
Начинаю изучать js. Решила изучать на практике. По совету одного из участников начала делать "пятнашку":
http://jsfiddle.net/vC8qU/1/
Пока можно двигать только по вертикали. Проблема такая: если "двигать" ячейки вниз то они двигаются до конца, а если "поднимать" то последняя не поднимается, так и остается в нижнем углу...

Подскажите, пожалуйста, почему так?

Реализация примерно такая:
1. Создается одномерный массив и рандомно сортируется(не суть как)
2. Затем добавляется в двумерный массив 4х4 и цифры из этого массива заносятся в таблицу
3. При клике проверятся есть ли рядом пустая ячейка и если есть то в нее записывается цифра из "кликнутой" ячейки, а в "кликнутой" все стирается.

рони 04.02.2012 14:14

Angie,
добавьте проверку что y + 1 или y - 1 лежит в пределах от 0 до 4
// проверяем наичие пустой чейки снизу
    if(y+1<4&&nums[y+1][x] == undefined){
        nums[y+1][x] = nums[y][x];
        emptyCell = document.getElementById('empty');
        emptyCell.innerHTML = nums[y+1][x];
        //
        nums[y][x] = undefined;
        this.innerHTML = '';
        this.setAttribute('id','empty');
        emptyCell.removeAttribute('id');
        }
    // проверяем наичие пустой чейки сверху
    else if(y-1>=0&&nums[y-1][x] == undefined){
        nums[y-1][x] = nums[y][x];
        emptyCell = document.getElementById('empty');
        emptyCell.innerHTML = nums[y-1][x];
        //
        nums[y][x] = undefined;
        this.innerHTML = '';
        this.setAttribute('id','empty');
        emptyCell.removeAttribute('id');
        }

Angie 04.02.2012 14:31

Спасибо))


Часовой пояс GMT +3, время: 14:06.