Я играю в многопользовательскую игру на ножницах, чтобы выучить эликсир.Моя структура игры содержит список игроков и победителя.Я хочу рекурсивно перебирать каждого игрока после того, как он выберет свой выбор, который обновляет счет (игрок 1 сравнивается с другими игроками, затем следующим и т. Д., Пока все не будут забиты).Я пытаюсь найти оптимальный способ обновления игры, но все, что я пробовал, кажется посредственным, когда дело доходит до производительности.Какой будет наилучший подход?
Ссылка на конкретную игровую логику: https://github.com/onesneakymofo/rock_paper_scissors/blob/master/lib/rock_paper_scissors/judge.ex
Структура:
%RockPaperScissors.Game{
players: [
%RockPaperScissors.Player{choice: "rock", name: "Mandude", score: 0},
%RockPaperScissors.Player{choice: "paper", name: "Tophlove", score: 0},
%RockPaperScissors.Player{choice: "scissors", name: "T. Milla", score: 0},
%RockPaperScissors.Player{choice: "scissors, name: "K-pop", score: 0}
],
winner: nil
}
Ожидаемый ввод:
players: [
%RockPaperScissors.Player{choice: "rock", name: "Mandude", score: 0},
%RockPaperScissors.Player{choice: "paper", name: "Tophlove", score: 0},
%RockPaperScissors.Player{choice: "scissors", name: "T. Milla", score: 0},
%RockPaperScissors.Player{choice: "scissors, name: "K-pop", score: 0}
]
Ожидаемый результат:
players: [
%RockPaperScissors.Player{choice: "rock", name: "Mandude", score: 2},
%RockPaperScissors.Player{choice: "paper", name: "Tophlove", score: 1},
%RockPaperScissors.Player{choice: "scissors", name: "T. Milla", score: 1},
%RockPaperScissors.Player{choice: "scissors, name: "K-pop", score: 1}
]