Java控制檯實現猜拳遊戲
阿新 • • 發佈:2021-01-19
本文例項為大家分享了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(); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。