JAVA---猜拳游戏

猜拳游戏

User

 


package com.javasm.chuquan;

import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;

import java.util.Scanner;


@Getter
@Setter
public class User {
  private String name;
  private int userScore;
  public int showFirst(@NonNull Scanner input) {
      System.out.println("请出拳:1.剪刀   2.石头 3.布(输入对应数字)");
      int choice = input.nextInt();
      String result = "";
      switch (choice) {
          case 1:
              result = "剪刀";
              break;
          case 2:
              result = "石头";
              break;
          case 3:
              result = "布";
              break;
      }
      System.out.println(name+"出拳 " + result);
      return choice;
  }
}

Computer

package com.javasm.chuquan;

import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;

@Getter
@Setter
public class Computer {
  @NonNull
  private String computerName;
  private int computerScore;
  public int showFirst() {
      //代码<80
      int random = (int) (Math.random() * 3 + 1);
      String result = "";
      switch (random) {
          case 1:
              result = "剪刀";
              break;
          case 2:
              result = "石头";
              break;
          case 3:
              result = "布";
              break;
      }
      System.out.println(computerName + "出拳 " + result);
      return random;
  }
}

Game

package com.javasm.chuquan;

import lombok.NonNull;

import java.util.Scanner;

public class Game {
  private static Scanner input;
  private static User user;
  private static Computer computer;

  static {
      input = new Scanner(System.in);
      user = new User();
      computer = new Computer();
  }

  public void start() {
      String nextJu;
      do {
          System.out.println("----------猜拳游戏---------");

          System.out.println("出拳规则:1.剪刀   2.石头 3.布");
          //给计算机选择角色
          choseRole();
          System.out.println("是否开始对战? y/n");
          String answer = input.next();
          if ("n".equals(answer)) {
              System.out.println("程序退出");
              input.close();
              return;
          }
          String nextRound;
          int count = 0;
          //猜拳
          do {
              count++;
              int userFist = user.showFirst(input);
              int computerFist = computer.showFirst();
              compareFist(userFist, computerFist);
              System.out.println("是否开始下一回合: y/n");
              nextRound = input.next();
          } while ("y".equals(nextRound));
//统计结果
          calResult(count);
          System.out.println("是否开始下一局?y/n");
          nextJu = input.next();
      } while ("y".equals(nextJu));
      System.out.println("程序退出");
      //开始新的一局需要清零
      user.setUserScore(0);
      computer.setComputerScore(0);
      input.close();

  }

  private void calResult(int count) {
      String name = user.getName();
      @NonNull String name1 = computer.getComputerName();
      System.out.println(name + "VS" + name1);
      System.out.println("对战次数:" + count);
      System.out.println("姓名\t得分");
      int userScore = user.getUserScore();
      int computerScore = computer.getComputerScore();
      System.out.println(name + "\t" + userScore);
      System.out.println(name1 + "\t" + computerScore);
      if (userScore > computerScore) {
          System.out.println(name + "赢了");
      } else if (userScore == computerScore) {
          System.out.println("最终结果:平局");
      }else
      System.out.println(name1 + "赢了");
  }

  private void compareFist(int userFist, int computerFist) {
      if (userFist - computerFist == 1 || userFist - computerFist == -2) {
          user.setUserScore(user.getUserScore() + 1);
          System.out.println(user.getName()+"赢了");
      } else if (userFist == computerFist) {
          System.out.println("结果:和局");
      } else {
          computer.setComputerScore(computer.getComputerScore() + 1);
          System.out.println(computer.getComputerName() + "赢了");
      }
  }

  private void choseRole() {
      System.out.println("请选择对方角色:1.刘备 2.孙权 3.曹操");
      int choice = input.nextInt();
      System.out.println("请录入你的名字:");
      String name = input.next();
      user.setName(name);
      String roleName = "";
      switch (choice) {
          case 1:
              roleName = "刘备";
              break;
          case 2:
              roleName = "孙权";
              break;
          case 3:
              roleName = "曹操";
              break;
      }
      System.out.println(name + "选择" + roleName + "对战");
      computer.setComputerName(roleName);
  }
}

GameTest,主程序

package com.javasm.test.chuquan_test;

import com.javasm.chuquan.Game;

public class GameTest {
  public static void main(String[] args) {
      new Game().start();
  }
}
 
posted @ 2022-10-10 17:23  学JAVA的旅行者  阅读(226)  评论(0)    收藏  举报