Я пытаюсь написать цикл while, так что игра будет продолжать играть до тех пор, пока не будут выполнены условия победы 4-го игрока. Игроки хранятся как объекты в массиве, а также имеют «активный» ключ, который отслеживает, если это их очередь.Написание существующего условия, которое прерывает цикл while
Я выделил все, что игрок делает в свою очередь в функции takeTurn(), но я пытаюсь найти способ продолжить цикл через массив allPlayers и дать каждому игроку поворот до 4 условия победы. Что мне делать? Я пробовал написать функцию «newActivePlayer», но он не работает в цикле while из-за проблем с областью, которые я пока не понимаю.
var allPlayers = [player1, player2, player3, player4]
var activePlayer = player1;
while (!win) {
takeTurn();
if (activePlayer.wincondition1 === true && activePlayer.wincondition2 === true && activePlayer.wincondition3 === true && activePlayer.wincondition4 === true) {
win = true;
};
};
В JavaScript, вы должны почти никогда не делает такой цикл, потому что это означает, что JS-движок не имеет возможности обрабатывать очередь событий. Вам нужно будет показать нам, что на самом деле происходит в 'takeTurn()', чтобы мы знали, что предложить, но, вероятно, вам следует решить, что делать дальше с разных обработчиков событий, а не на цикл. – jfriend00
Ваша настоящая проблема в дизайне. Удалите цикл while и покажите нам функцию takeTurn. – Ibu