1. 程式人生 > >java實現人機猜拳小遊戲

java實現人機猜拳小遊戲

通過構建玩家類,計算機類,遊戲類,三個類,實現了簡單的人機猜拳小遊戲。

/** 
* @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();
	}
}