1. 程式人生 > 程式設計 >Java控制檯實現猜拳遊戲

Java控制檯實現猜拳遊戲

本文例項為大家分享了Java控制檯實現猜拳遊戲的具體程式碼,供大家參考,具體內容如下

1、目標

通過控制檯實現一個人機對戰的猜拳遊戲,使用者通過輸入(1.剪刀 2.石頭 3.布),機器隨機生成(1.剪刀 2.石頭 3.布),勝者積分,n 局以後通過積分的多少判定勝負。

2、原始碼

根據目標的要求,可以大概知道,我們需要的類有:

①一個使用者類User,用於獲得和儲存使用者的出拳;

②一個機器人的類Robot,用於隨機生成機器人的出拳;

③一個Game類,是存放核心程式碼的類,使用者和機器人的出拳在這裡進行對比,對結果進行記錄,最後輸出結果;

④最後是一個呼叫各個方法的Guess類。

直接上程式碼:

User.java

import java.util.Scanner;

public class User{
  static Scanner input = new Scanner(System.in);
  int user = 0;//使用者出拳
  int score = 0;//使用者積分
  int num = 0;//對戰局數

  public int setUser(){
      System.out.println("請輸入:1.剪刀 2.石頭 3.布");
      user = input.nextInt();
      if (user == 1){
        System.out.println("使用者出拳:剪刀");
      }else if (user == 2){
        System.out.println("使用者出拳:石頭");
      }else if (user == 3){
        System.out.println("使用者出拳:布");
      }
    return user;
  }
}

Robot.java

import java.util.Random;

public class Robot {
  int id = 0;//獲得機器人的出手
  int score = 0;//機器人的積分

  //獲得機器人的出拳
  public int setId(){
    Random random = new Random();
    int r = random.nextInt(3);
    id = r + 1;//獲取機器人隨機出拳
    if (id == 1){
      System.out.println("機器人出拳:剪刀");
    }else if (id == 2){
      System.out.println("機器人出拳:石頭");
    }else if (id == 3){
      System.out.println("機器人出拳:布");
    }
    return id;
  }
}

Game.java

import java.util.Scanner;

public class Game {
  //對使用者類和機器人類進行初始化
  User user = new User();
  Robot robot = new Robot();

  public void GameStart() {
    //初始化介面
    System.out.println("-------------歡迎進入猜拳遊戲---------------");
    System.out.println();
    System.out.println("******************************************");
    System.out.println("——————出拳規則:1.剪刀  2.石頭  3.布——————————");
    System.out.println("-------------》》》猜拳開始《《《------------");
    System.out.println("-------------------------------------------");
    Scanner input = new Scanner(System.in);

    //獲得使用者想要進行的對戰次數
    System.out.println("請輸入對戰局數:");
    user.num = input.nextInt();
    System.out.println("遊戲開始");
    
    int userFirst;//使用者出拳
    int robotFirst;//機器人出拳
      for (int i = 0; i < user.num; i++) {
        //獲取雙方的出拳
        userFirst = user.setUser();
        robotFirst = robot.setId();
        //判斷勝負
        if (userFirst == robotFirst) {
          System.out.println("結果:平局,不積分。");
        } else if ((userFirst == 2 && robotFirst == 1) || (userFirst == 3 && robotFirst == 2)) {
          System.out.println("結果:你贏了,加一分!");
          user.score++;
        } else {
          System.out.println("結果:你輸了,機器人加一分。");
          robot.score++;
        }
      }
    //顯示結果
    showResult();
    }

    //輸出對戰結果
  private void showResult() {
    //顯示對戰次數
    System.out.println("------------------------------");
    System.out.println("對戰次數:" + user.num);
    //顯示最終得分
    System.out.println("\n姓名\t得分");
    System.out.println("使用者" + "\t" + user.score);
    System.out.println("機器人" + "\t" + robot.score + "\n");

    //顯示對戰結果
    int result = Result();
    if (result == 1) {
      System.out.println("結果:打成平手。");
    } else if (result == 2) {
      System.out.println("結果:恭喜你贏得對戰!");//使用者獲勝
    } else {
      System.out.println("結果:你輸了,不氣餒,下次再來");//計算機贏
    }
    System.out.println("遊戲結束");
    System.out.println("--------------------------");
  }

  //計算比賽結果
  private int Result() {
    if (user.score == robot.score) {
      return 1;
    } else if (user.score > robot.score) {
      return 2;
    } else {
      return 3;
    }
  }
}

Guess.java

public class Guess {
  public static void main(String[] args) {
    Game game = new Game();
    
    //呼叫輸出比賽結果的方法
    game.GameStart();
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。