1. 程式人生 > >猜拳遊戲(電腦大戰人類)圖文闡釋決鬥過程,精彩!

猜拳遊戲(電腦大戰人類)圖文闡釋決鬥過程,精彩!

 

  • 任務
    • 完成人機猜拳互動遊戲的開發
  • 主要功能
    • 選取對戰角色
    • 猜拳
    • 記錄分數
  • 需求說明
    • 分析業務
    • 抽象出類、類的特徵和行為
  • 實現思路:
    • 分析業務,抽象出類、類的特徵和行為

下面給出執行結果及程式碼,供參考:

  • 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();		
	}
}