版本1:人機大戰 基礎隨機出 用戶鍵盤錄入
package com.hainiu.demo; import java.util.Scanner; /* * 人機大戰石頭剪刀布 */ public class Cycles { public static void main(String[] args) { while(true){ System.out.println("-----歡迎來到游戲界面----"); System.out.println("1:剪刀、2:石頭、3:布"); Scanner sc = new Scanner(System.in); int person = sc.nextInt(); int computer = (int)(Math.random()*(3)+1); String per="用戶"; String com="電腦"; //用戶 switch(person){ case 1: per="剪刀"; break; case 2: per="石頭"; break; case 3: per="布"; break; //電腦 } switch(computer){ case 1: com="剪刀"; break; case 2: com="石頭"; break; case 3: com="布"; break; //判斷 } if(person==1&&computer==2||person==2&&computer==3||person==3&&computer==1){ System.out.println("你出的是"+per+"電腦出的是"+com); System.out.println("你輸啦"); }else if(person==2&&computer==1||person==3&&computer==2||person==1&&computer==3){ System.out.println("你出的是"+per+"電腦出的是"+com); System.out.println("你贏了"); }else if(person==computer){ System.out.println("你出的是"+per+"電腦出的是"+com); System.out.println("平局"); }else{ System.out.println("您的輸入有誤"); break; } } } }
運行結果:
-----歡迎來到游戲界面----
1:剪刀、2:石頭、3:布
2
你出的是: 石頭 電腦出的是: 剪刀
你贏了
-----歡迎來到游戲界面----
1:剪刀、2:石頭、3:布
版本2:
猜拳游戲說明:
⦁ 任務
⦁ 完成人機猜拳互動游戲的開發
⦁ 主要功能
⦁ 選取對戰角色
⦁ 猜拳
⦁ 記錄分數
⦁ 需求說明
⦁ 分析業務
⦁ 抽象出類、類的特征和行為
⦁ 實現思路:
⦁ 分析業務,抽象出類、類的特征和行為
package com.hainiu.demo; import java.util.Scanner; class User{ Scanner sc = new Scanner(System.in); private String name; private int integral; private String punch; public User() { // TODO Auto-generated constructor stub } public User(String name, int integral, String punch) { super(); this.name = name; this.integral = integral; this.punch = punch; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIntegral() { return integral; } public void setIntegral(int integral) { this.integral = integral; } public String getPunch() { return punch; } public void setPunch(String punch) { this.punch = punch; } //用戶輸入名稱 public void inputName(){ System.out.println("請輸入用戶錄入名"); name = sc.next(); } //猜拳方法 public void UserGuess(){ int n= sc.nextInt(); System.out.println("1、剪刀,2、石頭、3、布"); if(n>0&&n<=3){ switch (n) { case 1: this.punch="剪刀"; break; case 2: this.punch="石頭"; break; case 3: this.punch="布"; break; } }else{ System.out.println("輸入有誤"); } } } class Computer{ Scanner sc = new Scanner(System.in); private String name; private int integral; private String punch; public Computer() { } public Computer(Scanner sc, String name, int integral, String punch) { this.sc = sc; this.name = name; this.integral = integral; this.punch = punch; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIntegral() { return integral; } public void setIntegral(int integral) { this.integral = integral; } public String getPunch() { return punch; } public void setPunch(String punch) { this.punch = punch; } //選擇用戶 public void computerName(){ System.out.println("請選擇您的對手:"); System.out.println("1、掃地僧,2、逍遙子、3、獨孤求敗"); int n = sc.nextInt(); switch (n) { case 1: this.name="掃地僧"; break; case 2: this.name="逍遙子"; break; case 3: this.name="獨孤求敗"; break; } } //猜拳方法 public void comuterGuess(){ //System.out.println("對手出的是:"); int t = (int)(Math.random()*(3)+1); switch (t) { case 1: this.punch="剪刀"; break; case 2: this.punch="石頭"; break; case 3: this.punch="布"; break; } } } class TestGame{ User u = new User(); Computer c =new Computer(); //歡迎進入游戲菜單 public void start(){ //初始化對象 System.out.println("歡迎進入游戲菜單"); System.out.println("游戲開始"); //選擇您的對手 c.computerName(); u.inputName(); System.out.println(u.getName()+"vs"+c.getName()); } //判斷出拳的結果 public void game(){ u.UserGuess();; c.comuterGuess(); System.out.println("你出的是"+u.getPunch()); System.out.println(c.getName()+"出的是"+c.getPunch()); //具體判斷輸贏的 剪刀 石頭 布 if(u.getPunch().equals("剪刀") && c.getPunch().equals("石頭")||u.getPunch().equals("石頭") && c.getPunch().equals("布") || u.getPunch().equals("布") && c.getPunch().equals("剪刀")){ c.setIntegral(c.getIntegral()+1); System.out.println("你輸了"); }else if(u.getPunch().equals("石頭")&&c.getPunch().equals("剪刀")||u.getPunch().equals("布")&&c.getPunch().equals("石頭")||u.getPunch().equals("剪刀")&&c.getPunch().equals("布")){ u.setIntegral(u.getIntegral()+1); System.out.println("你贏啦"); }else { System.out.println("平局"); } } public void last(){ System.out.println("最后結果是:"); System.out.println(u.getName()+"贏了"+u.getIntegral()+"局"); System.out.println(c.getName()+"贏了"+c.getIntegral()+"局"); if(u.getIntegral()>c.getIntegral()){ System.out.println("算總分"+u.getName()+"或的最后的勝利"); }else if(u.getIntegral()<c.getIntegral()){ System.out.println("算總分"+c.getName()+"或的最后的勝利"); }else if(u.getIntegral()==c.getIntegral()){ System.out.println("最后平局"); }else { System.out.println("輸入有誤,這不是系統的問題"); } } } public class Cycles2 { public static void main(String[] args) { // 測試 Scanner sc = new Scanner(System.in); System.out.println("---------游戲開始----------\n"); TestGame tg = new TestGame(); tg.start(); System.out.println("輸入y繼續,其他人任意鍵結束"); String panduan = sc.next(); //循環game方法 while(panduan.equals("y")){ System.out.println("******************"); System.out.println("1、剪刀,2、石頭、3、布"); tg.game(); System.out.println("y:繼續-任意:結束"); panduan = sc.next(); } System.out.println("游戲結束"); tg.last(); } }