123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- 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();
|