我试图在2名玩家之间实施一个回合制游戏,而且我有一个属性可以指示谁回合了。
class Player{
constructor(name){
this.name = name;
this.playerTurn = true;
}
}
var p = new Player('mike');
var k = new Player('jeff');
除了在实例化之后立即运行k.playerTurn = false;
之外,是否有更优雅的方式在实例化时翻转玩家k的playerTurn属性?
答案 0 :(得分:2)
它不应该是玩家的属性,而是游戏状态的属性,例如:
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')]);