Как переключить логическое значение объекта, созданного классом? Javascript - PullRequest
0 голосов
/ 28 апреля 2018

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

class Player{
  constructor(name){
    this.name = name;
    this.playerTurn = true;
  }
}

var p = new Player('mike');
var k = new Player('jeff');

кроме запуска k.playerTurn = false; сразу после создания экземпляра, есть ли более элегантный способ перевернуть свойство playerTurn игрока k в момент создания экземпляра?

1 Ответ

0 голосов
/ 28 апреля 2018

Чей это ход, должен принадлежать не игроку, а состоянию игры, например ::10000

class Game {
    constructor(players) {
        this.players = players;  // Player[]
        this.currentPlayer = players[0];
    }

    nextTurn() {
        // Or whatever your logic for rotating players is…
        this.players = this.players.concat([this.players.shift()]);
        this.currentPlayer = this.players[0];
    }
}

const game = new Game([new Player('jeff'), new Player('mike')]);
...