1. 程式人生 > >【從零學java】猜數字遊戲——了解類與對象

【從零學java】猜數字遊戲——了解類與對象

ring == src layer stat 猜數字 false mat think

通過猜數字遊戲,開始了解類和對象。

遊戲概要:產生一個0-9間的隨機數,3個player猜,若有猜中者則遊戲結束,猜不中下一輪繼續猜。

類:GuessGame.class、Player.class、GameLauncher.class

邏輯:

1)GameLauncher作為程序的入口,含有main()方法。

2)main()中創建GuessGame對象,並調用它的startGame()方法。

3)startGame()方法是遊戲的起點,創建3個player,然後猜數,並體現猜數的過程。

3個源文件的代碼如下:

GuessGame.java

public class GuessGame{
	Player p1;
	Player p2;
	Player p3;

	public void startGame(){
		p1 = new Player();
		p2 = new Player();
		p3 = new Player();

		int guessp1 = 0;
		int guessp2 = 0;
		int guessp3 = 0;

		boolean p1isRight = false;
		boolean p2isRight = false;
		boolean p3isRight = false;

		int resultNum = (int)(Math.random()*10);
		System.out.println("I‘m thinking of a number between 0 and 9...");
		System.out.println("number to guess is "+resultNum);

		while(true){
			p1.guess();
			p2.guess();
			p3.guess();

			guessp1 = p1.number;
			guessp2 = p2.number;
			guessp3 = p3.number;

			if(guessp1 == resultNum){
				p1isRight = true;
			}
			if(guessp2 == resultNum){
				p2isRight = true;
			}
			if(guessp3 == resultNum){
				p3isRight = true;
			}

			System.out.println("player one guessed " + guessp1);
			System.out.println("player two guessed " + guessp2);
			System.out.println("player three guessed " + guessp3);

			if(p1isRight || p2isRight|| p3isRight){
				System.out.println("we have a winner!");
				System.out.println("one is winner? "+ p1isRight);
				System.out.println("two is winner? "+ p2isRight);
				System.out.println("three is winner? "+ p3isRight);
				System.out.println("Game is over.");
				break;
			}else{
				System.out.println("try again.");
			}
		}
	}
}

  

Player.java

public class Player{
	int number = 0;

	public void guess(){
		number = (int) (Math.random()*10);
		System.out.println("I guess "+number);
	} 
}

  

GameLauncher.java

public class GameLauncher{
	public static void main(String[] args){
		GuessGame game = new GuessGame();
		game.startGame();
	}
}

  三個文件在同一個目錄下,編譯時,直接編譯帶main()方法的源文件,所有相關的源文件都會被編譯。

執行如下(每次執行都會不一樣,有時會猜好多輪):

技術分享圖片

要理解的點:

1、如果需要全局變量或者方法時,怎麽辦?

在java的面向對象概念中,並沒有全局變量這回事,有時我們需要

【從零學java】猜數字遊戲——了解類與對象