function computerLogic(array) {
function random() {
var rand = Math.floor(Math.random() * 9);
var result = (array[rand] === computerChoice) || (array[rand] === playerChoice) ?
random(): (function() {
array[rand] = computerChoice;
grid.item(rand).innerHTML = computerChoice;
})(rand);
}
random();
}
Moze i proste ale moja logika mnie zawodzi.
To gra w kółko i krzyżyk , computerLogic(array) jest wywoływana za każdym razem jak użytkownik kliknie i wtedy losowana jest liczba . Jak pod indexem tablicy znajduje sie X albo O ( playerChoice) albo (userChoice) chce żeby wylosowało liczbe jeszcze raz. Do tej pory robiłem to jakby rekursywnie ale nie chce zeby za każdym razem wywoływało znowu funkcje random tylko poprostu znowu wylosowało..I jakoś wogóle nie mam pomysłu..
https://github.com/uRTLy/Tic-Tac-Toe tutaj kod aplikacji ale przed tym jak zmieniłem na ternary operator zamiast ifów.
edit
może też wracać do początku funkcji znowu albo poprostu niech znowu włączy rand ale niech ponownie sprawdzi czy nie wylosowało indexu z zajętym polem. Tylko niech nie wywołuje się jeszcze raz bo pod koniec w konsoli przeglądarki mam 10 randomów wywołanych i maximum call stack exceeded przy kółku i krzyżyku....