Вопрос Как сделать проверку на неповторение элементов?

4SV
Начинающий
Статус
Оффлайн
Регистрация
14 Дек 2018
Сообщения
180
Реакции[?]
29
Поинты[?]
0
В общем сделал такой сайт, нужно добавить проверку чтобы элементы по вертикали не повторялись, думал как-то через массив реализовать, но слишком много циклов будет, как-то по говнокодски будет выглядеть, есть более оптимизированный вариант? И проверка на победу, тоже как-то костыльно выглядит...
JavaScript:
    let attempt_element = document.getElementById("attempt");
    let username_element = document.getElementById("username");
    function getRandomInt(max) {
        return Math.floor(Math.random() * max);
    }

    let username = prompt("Enter your name: ");
    if (username == "" || username == null){
        username = "Player";
    }
    username_element.innerHTML = username;

    let attempts = 0;
    let arr = new Array();
    function generate(){
        attempts++;
        if (attempts <=3){
            attempt_element.innerHTML = "Attempt " + (attempts) + " of 3";
            for(let i = 1; i < 10; i++)
            {
                let random = getRandomInt(8)+1;
                arr[i] = random;
                let slot_element = document.getElementById("slot" + i);            
                slot_element.src = "img/" + random + ".png";
            }
            if (arr[0] == arr[3] && arr[0] == arr[6] || arr[1] == arr[4] && arr[1] == arr[7] || arr[2] == arr[5] && arr[2] == arr[8])
            {
                alert(username + ", you win!");
                attempts = 0;
                attempt_element.innerHTML = "Attempt " + (attempts) + " of 3";
               
            }
        }
        else if (attempts == 4){
            attempts = 0;
            alert(username + ", you lose!");
            attempt_element.innerHTML = "Attempt " + (attempts) + " of 3";
        }
    }
1663770797607.png
 
Пользователь
Статус
Оффлайн
Регистрация
22 Май 2022
Сообщения
202
Реакции[?]
43
Поинты[?]
6K
Нужно чтобы в столбце не было одинаковых элементов.
Так у тебя должен же быть массив первой колонкой и так далее почему ты не можешь сравнить элементы? если одинаковые, то меняешь один из них
 
4SV
Начинающий
Статус
Оффлайн
Регистрация
14 Дек 2018
Сообщения
180
Реакции[?]
29
Поинты[?]
0
Так у тебя должен же быть массив первой колонкой и так далее почему ты не можешь сравнить элементы? если одинаковые, то меняешь один из них
мой код работает, просто не самым эффективным способом
для каждой колонки массив, это точно будет лучше?)
можно и двумерный, ну кода от этого я не думаю что уменьшится
 
Сверху Снизу