class Player { life: number; choices: string[]; constructor() { this.life = 3; this.choices = ['石头', '剪刀', '布']; } makeChoice(): number { return Math.floor(Math.random() * 3) + 1; } } class Game { players: Player[]; constructor() { this.players = [new Player(), new Player()]; } playGame(): void { console.log('游戏开始!'); while (this.players[0].life > 0 && this.players[1].life > 0) { this.playRound(); } this.endGame(); } playRound(): void { const player1Choice = this.players[0].makeChoice(); const player2Choice = this.players[1].makeChoice(); const result = this.getResult(player1Choice, player2Choice); this.printRoundResult(player1Choice, player2Choice, result); if (result === 1) { this.players[1].life--; } else if (result === -1) { this.players[0].life--; } this.printLifeStatus(); } getResult(choice1: number, choice2: number): number { if (choice1 === choice2) { return 0; } else if ( (choice1 === 1 && choice2 === 2) || (choice1 === 2 && choice2 === 3) || (choice1 === 3 && choice2 === 1) ) { return 1; } else { return -1; } } printRoundResult(choice1: number, choice2: number, result: number): void { console.log('对局开始:'); console.log(`玩家1选择了${this.players[0].choices[choice1 - 1]}`); console.log(`玩家2选择了${this.players[1].choices[choice2 - 1]}`); if (result === 0) { console.log('平局!'); } else if (result === 1) { console.log('玩家1赢了!'); } else { console.log('玩家2赢了!'); } } printLifeStatus(): void { console.log(`玩家1生命值:${this.players[0].life}`); console.log(`玩家2生命值:${this.players[1].life}`); console.log('----------------------'); } endGame(): void { console.log('游戏结束!'); } } // 创建游戏实例并开始对战 const game = new Game(); game.playGame();