Java控制臺(tái)實(shí)現(xiàn)猜拳游戲
本文實(shí)例為大家分享了Java控制臺(tái)實(shí)現(xiàn)猜拳游戲的具體代碼,供大家參考,具體內(nèi)容如下
1、目標(biāo)
通過控制臺(tái)實(shí)現(xiàn)一個(gè)人機(jī)對戰(zhàn)的猜拳游戲,用戶通過輸入(1.剪刀 2.石頭 3.布),機(jī)器隨機(jī)生成(1.剪刀 2.石頭 3.布),勝者積分,n 局以后通過積分的多少判定勝負(fù)。
2、源碼
根據(jù)目標(biāo)的要求,可以大概知道,我們需要的類有:
①一個(gè)用戶類User,用于獲得和存儲(chǔ)用戶的出拳;
②一個(gè)機(jī)器人的類Robot,用于隨機(jī)生成機(jī)器人的出拳;
③一個(gè)Game類,是存放核心代碼的類,用戶和機(jī)器人的出拳在這里進(jìn)行對比,對結(jié)果進(jìn)行記錄,最后輸出結(jié)果;
④最后是一個(gè)調(diào)用各個(gè)方法的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;//對戰(zhàn)局?jǐn)?shù) 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;//獲得機(jī)器人的出手 int score = 0;//機(jī)器人的積分 //獲得機(jī)器人的出拳 public int setId(){ Random random = new Random(); int r = random.nextInt(3); id = r + 1;//獲取機(jī)器人隨機(jī)出拳 if (id == 1){ System.out.println("機(jī)器人出拳:剪刀"); }else if (id == 2){ System.out.println("機(jī)器人出拳:石頭"); }else if (id == 3){ System.out.println("機(jī)器人出拳:布"); } return id; } }
Game.java
import java.util.Scanner; public class Game { //對用戶類和機(jī)器人類進(jìn)行初始化 User user = new User(); Robot robot = new Robot(); public void GameStart() { //初始化界面 System.out.println("-------------歡迎進(jìn)入猜拳游戲---------------"); System.out.println(); System.out.println("******************************************"); System.out.println("——————出拳規(guī)則:1.剪刀 2.石頭 3.布——————————"); System.out.println("-------------》》》猜拳開始《《《------------"); System.out.println("-------------------------------------------"); Scanner input = new Scanner(System.in); //獲得用戶想要進(jìn)行的對戰(zhàn)次數(shù) System.out.println("請輸入對戰(zhàn)局?jǐn)?shù):"); user.num = input.nextInt(); System.out.println("游戲開始"); int userFirst;//用戶出拳 int robotFirst;//機(jī)器人出拳 for (int i = 0; i < user.num; i++) { //獲取雙方的出拳 userFirst = user.setUser(); robotFirst = robot.setId(); //判斷勝負(fù) if (userFirst == robotFirst) { System.out.println("結(jié)果:平局,不積分。"); } else if ((userFirst == 2 && robotFirst == 1) || (userFirst == 3 && robotFirst == 2)) { System.out.println("結(jié)果:你贏了,加一分!"); user.score++; } else { System.out.println("結(jié)果:你輸了,機(jī)器人加一分。"); robot.score++; } } //顯示結(jié)果 showResult(); } //輸出對戰(zhàn)結(jié)果 private void showResult() { //顯示對戰(zhàn)次數(shù) System.out.println("------------------------------"); System.out.println("對戰(zhàn)次數(shù):" + user.num); //顯示最終得分 System.out.println("\n姓名\t得分"); System.out.println("用戶" + "\t" + user.score); System.out.println("機(jī)器人" + "\t" + robot.score + "\n"); //顯示對戰(zhàn)結(jié)果 int result = Result(); if (result == 1) { System.out.println("結(jié)果:打成平手。"); } else if (result == 2) { System.out.println("結(jié)果:恭喜你贏得對戰(zhàn)!");//用戶獲勝 } else { System.out.println("結(jié)果:你輸了,不氣餒,下次再來");//計(jì)算機(jī)贏 } System.out.println("游戲結(jié)束"); System.out.println("--------------------------"); } //計(jì)算比賽結(jié)果 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(); //調(diào)用輸出比賽結(jié)果的方法 game.GameStart(); } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java中TreeSet、HashSet、Collection重寫比較器的實(shí)現(xiàn)
比較器是一種可以對集合或數(shù)組中的元素按照自定義的方式進(jìn)行排序的對象,本文主要介紹了Java中TreeSet、HashSet、Collection重寫比較器的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2023-08-08mybatis-plus3.0.1枚舉返回為null解決辦法
這篇文章主要介紹了mybatis-plus3.0.1枚舉返回為null解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12java通過ssh連接執(zhí)行shell命令,文件傳輸方式
這篇文章主要介紹了java通過ssh連接執(zhí)行shell命令,文件傳輸方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08Java 實(shí)戰(zhàn)范例之進(jìn)銷存管理系統(tǒng)的實(shí)現(xiàn)
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+vue+Springboot+ssm+mysql+maven+redis實(shí)現(xiàn)一個(gè)前后端分離的進(jìn)銷存管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11501 Command "HELO" requires an argument問題的解決方法
換一個(gè)windows服務(wù)器,發(fā)現(xiàn)就沒這樣的問題,僅在一臺(tái)Linux服務(wù)器上可以重現(xiàn),直觀感覺就是這臺(tái)Linux服務(wù)器某些配置有問題2013-08-08基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線至服務(wù)器的方法
ChatGPT是一款基于自然語言處理技術(shù)的聊天機(jī)器人,ChatGPT可以模擬真實(shí)的人類對話,并能夠更貼近用戶的需求,提供更有價(jià)值的服務(wù),這篇文章主要介紹了基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線至服務(wù)器,需要的朋友可以參考下2023-02-02