猜拳遊戲(電腦大戰人類)圖文闡釋決鬥過程,精彩!
阿新 • • 發佈:2018-11-01
- 任務
- 完成人機猜拳互動遊戲的開發
- 主要功能
- 選取對戰角色
- 猜拳
- 記錄分數
- 需求說明
- 分析業務
- 抽象出類、類的特徵和行為
- 實現思路:
- 分析業務,抽象出類、類的特徵和行為
下面給出執行結果及程式碼,供參考:
- User.class
package 猜拳小遊戲; import java.util.Scanner; public class User { private String Uname; private int score; public int getScore() { return score; } public void setScore(int score) { this.score = score; } public String getUname() { return Uname; } /*--人類選擇角色--*/ public void Chose(){ Scanner sc = new Scanner(System.in); System.out.println("請選擇角色(1.海南黃花梨2.海南3.黃花梨)"); int no = sc.nextInt(); switch (no) { case 1: System.out.println("我選擇的角色:1"); this.Uname="1"; break; case 2: System.out.println("我選擇的角色:2"); this.Uname="2"; break; case 3: System.out.println("我選擇的角色:3"); this.Uname="3"; break; } } /*--人類選擇拳法--*/ public int play(){ Scanner sc =new Scanner(System.in); System.out.println("請選擇拳法(1.剪刀2.石頭3.布),也可輸入1、2、3數字進行選擇"); int no = sc.nextInt(); switch (no) { case 1: System.out.println("我選擇拳法:1"); break; case 2: System.out.println("我選擇拳法:2"); break; case 3: System.out.println("我選擇拳法:3"); break; } return score; } }
- Computer
package 猜拳小遊戲; public class Computer { private String Cname; private int score = 0; public String getCname() { return Cname; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } /*--計算機選擇角色--*/ public void Chose(){ int no = (int)(Math.random()*(3+1-1)+1); switch (no) { case 1: System.out.println("計算機選擇的角色是:海南黃花梨"); this.Cname="海南黃花梨"; break; case 2: System.out.println("計算機選擇的角色是:海南"); this.Cname="海南"; break; case 3: System.out.println("計算機選擇的角色是:黃花梨"); this.Cname="黃花梨"; break; } } public int paly(){ int no = (int)(Math.random()*(3+1-1)+1); switch (no) { case 1: System.out.println("計算機的拳法是:剪刀"); this.Cname="剪刀"; break; case 2: System.out.println("計算機的拳法是:石頭"); this.Cname="石頭"; break; case 3: System.out.println("計算機的拳法是:布"); this.Cname="布"; break; } return score; } }
- Game.java
package 猜拳小遊戲; import java.util.Scanner; public class Game { private User u = null; private Computer c = null; private int count; Game(){ u = new User(); c = new Computer(); count = 0; } /*--進入遊戲--*/ public void StartGame(){ Scanner sc = new Scanner(System.in); System.out.println("-----------歡迎進入遊戲世界-----------\n"); System.out.println(" ***************"); System.out.println(" ** 猜拳,開始 **"); System.out.println(" ***************\n"); System.out.println("出拳規則:1.剪刀2.石頭3.布\n"); //電腦和人類選擇角色 u.Chose(); System.out.println(); c.Chose(); System.out.println(); //開始遊戲 System.out.println("要開始嗎?(y/n)\n"); String str = sc.next(); while(str.equals("y")){ int per = u.play();//存放人類的出拳對應的數字 int com = c.paly();//存放電腦的出拳對應的數字 if(per == com){ System.out.println("結果:和局"); } else if(per == 1 && com ==3 || per == 2 && com ==1 || per ==3 && per ==2){ System.out.println("結果(機器):"+u.getUname()+"你贏了"); u.setScore(u.getScore()+1); } else { System.out.println("結果(機器):"+c.getCname()+"贏了"); c.setScore(c.getScore()+1); } count ++; System.out.println("是否開始下一輪(y/n)\n"); str = sc.next(); } sc.close(); //顯示對戰結果 ShowResult(); } private void ShowResult() { System.out.println("--------------------------------\n"); System.out.println("(機器)"+c.getCname()+" VS "+"(人)"+u.getUname()); System.out.println("最終比分:\t"+c.getScore()+" : "+u.getScore());//顯示比分 System.out.println("對戰次數:"+count+"次"); //顯示對戰次數 if(u.getScore() < c.getScore()){ System.out.println("結果:(機器)"+c.getCname()+"獲勝"); } else if(u.getScore() > c.getScore()){ System.out.println("結果:(人)"+u.getUname()+"獲勝"); } else { System.out.println("結果:平局!!"); } } }
- testGame
package 猜拳小遊戲;
/**
* 測試類
*/
public class testGame {
public static void main(String[] args) {
new Game().StartGame();
}
}