java實現人機猜拳小遊戲
阿新 • • 發佈:2018-12-16
通過構建玩家類,計算機類,遊戲類,三個類,實現了簡單的人機猜拳小遊戲。
/** * @author 萬星明 * @version 建立時間:2018年10月20日 下午3:01:09 * 計算機類 */ public class Computer { public static String name = "計算機"; public static int score = 0; //出拳方法 public static int finger() { int data = (int)(Math.random()*3+1); switch(data) { case 1: System.out.println(name+"出拳:剪刀"); break; case 2: System.out.println(name+"出拳:石頭"); break; case 3: System.out.println(name+"出拳:布"); break; } return data; } }
import java.util.Scanner; /** * @author 萬星明 * @version 建立時間:2018年10月20日 下午2:46:49 * 使用者類 */ public class User { static Scanner sc = new Scanner(System.in); public static String name = "萬星明"; public static int score=0; //出拳方法 public static int finger() { System.out.println("請出拳:1.剪刀 2.石頭 3.布(輸入相應數字):"); int data = sc.nextInt(); switch(data) { case 1: System.out.println("你出拳:剪刀"); break; case 2: System.out.println("你出拳:石頭"); break; case 3: System.out.println("你出拳:布"); break; default: System.out.println("輸入錯誤!"); break; } return data; } }
import java.util.Scanner; /** * @author 萬星明 * @version 建立時間:2018年10月20日 下午3:06:39 * 遊戲類 */ public class Game { static Scanner sc = new Scanner(System.in); User user; Computer computer; static int fightFrequency=0; //初始化方法 public static void initial() { System.out.println("----------------歡迎進入遊戲世界----------------"); System.out.println("\n\t\t\t\t************"); System.out.print("\t\t\t\t**猜拳**開始**"); System.out.print("\n\t\t\t\t************"); System.out.println("\n出拳規則:1.剪刀 2.石頭 3.布"); } //開始遊戲方法 public static void startGame() { System.out.printf("請選擇計算機角色:1.劉備 2.曹操 3.孫權:"); int answer = sc.nextInt(); System.out.println("請輸入你的姓名:"); User.name = sc.next(); switch(answer) { case 1: Computer.name = "劉備"; System.out.println(User.name+" VS "+Computer.name); break; case 2: Computer.name = "曹操"; System.out.println(User.name+" VS "+Computer.name); break; case 3: Computer.name = "孫權"; System.out.println(User.name+" VS "+Computer.name); break; default: System.out.println("無此人物選項!"); break; } } //第一次遊戲方法 public static void showFirst() { initial(); startGame(); int userNum = User.finger(); int computerNum = Computer.finger(); calResult(userNum, computerNum); while(true) { System.out.println("是否開始下一輪?(y/n):"); String answer = sc.next(); if(answer.equalsIgnoreCase("y")) { int userNum1 = User.finger(); int computerNum1 = Computer.finger(); calResult(userNum1, computerNum1); }else { break; } } } //計算結果方法 public static void calResult(int userNum,int computerNum) { if((userNum==1&&computerNum==3)||(userNum==2&&computerNum==1)||(userNum==3&&computerNum==2)) { User.score++; System.out.println("結果說:^_^你贏了,帥哥!"); }else if((userNum==1&&computerNum==2)||(userNum==2&&computerNum==3)||(userNum==3&&computerNum==1)){ Computer.score++; System.out.println("結果說:^_^你輸了,笨蛋!"); }else { System.out.println("結果說:^_^竟然是平局!!"); } fightFrequency++; } //顯示最終遊戲結果方法 public static void showResult() { System.out.println(Computer.name+":"+Computer.score+" VS "+User.score+":"+User.name); System.out.println("對戰次數:"+fightFrequency); if(Computer.score>User.score) { System.out.println("笨笨,加油啊!雖然你輸了,但是!你萌啊!"); }else if(Computer.score<User.score) { System.out.println("小夥子,厲害哦!電腦都贏不了你了!"); }else { System.out.println("你也就和電腦一般智商,一般般!"); } } //主執行方法 public static void main(String[] args) { showFirst(); showResult(); } }