Найдите оставшиеся индексы и сохраните их как значения - PullRequest
0 голосов
/ 07 августа 2020

Я делаю небольшую игру. Вы должны найти мяч под рандомизированной чашкой.

Сначала изображения сохраняются в nodeList. Затем выигрышный кубок вычисляется случайным образом из длины nodeList.

Моя проблема: после того, как было вычислено случайное значение для winCup, я не знаю, как найти два других индекса из nodeList 'images' . Как я могу рассчитать два значения, которые НЕ ЯВЛЯЮТСЯ рандомизированным значением winCup?

Я думал о том, чтобы выпустить какую-то проверку, но я не уверен, что проверять. Моя цель - сделать так, чтобы две оставшиеся чашки переключились на другой файл с расширением .png, открывающий пустые чашки.

введите описание изображения здесь

window.onload = function() {
    getImages();
}

function getImages() {
    var images = document.getElementsByTagName('img');
    var winningCup = Math.floor(Math.random() * images.length);
 
    var empty1 = Math.floor(Math.random() * images.length);
    var empty2 = Math.floor(Math.random() * images.length);

    if(empty1 || empty2 === winningCup){


    }

    for(var i = 0; i < images.length; i++) {
        images[winningCup].onclick = winCup;
     
    }
    console.log(empty1);
    console.log(empty2)
    console.log(winningCup)
}

function winCup(eventObj){
    var cup = eventObj.target;
    var name = cup.id;
    name = name + 'ball.png';
    cup.src = name; 

    //adds photo of winning cup
}

function losingCups(eventObj){
    var cups = eventObj.target;
    var name = cups.id;
    name = name + 'up.png';
    cups.src = name

    //adds photo of losing cups


}

Ответы [ 2 ]

1 голос
/ 07 августа 2020

Вам нужен только случайный выигрышный кубок. Все остальные проигрывают, а не случайно.

function getImages() {
    var images = document.getElementsByTagName("img");
    var winningCup = Math.floor(Math.random() * images.length);
    for (var i = 0; i < images.length; ++i)
        images[i].onclick = i == winningCup ? winCup : losingCups;
}
0 голосов
/ 07 августа 2020

Удалить фильтром с номером выигрышного кубка.

function arrayRemove(arr, value) { 
return arr.filter(function(ele){ 
return ele != value; 
});}

var losingCups = arrayRemove(array, winningCup);
...