編寫Java程序,模擬五子棋博弈過程中的異常聲明和異常拋出

返回本章節

返回作業目錄


需求說明:

模擬五子棋博弈過程中的異常聲明和異常拋出,判斷用戶所下棋子的位置,是否超越了棋盤的邊界。

棋盤的橫座標的範圍爲0~9,縱座標範圍爲0~14,如果用戶所放棋子的座標超出了座標範圍,捕獲系統拋出的異常,給出友好的提示信息。

實現思路:

所放棋子的座標超出了座標範圍異常處理的實現思路:

  • 創建五子棋類GoBang,在該類中創建二維數組board,代表五子棋棋盤,二維數組長度爲[10][15]。
  • 在GoBang類中創建init()方法,該方法用於爲二維數組賦值,二維數組的每一個數組元素值爲“+”。
  • 在GoBang類中創建下棋方法playChess(int x,int y),x和y分別代表棋盤的橫座標和縱座標。如果x的值不在0~9,y的值不在0~14,則使用throw拋出異常。
  • 在main方法中調用playChess(int x,int y),並將該方法放入try語句塊,通過catch塊的ArrayIndexOutOfBoundsException異常捕捉playChess(x, y)可能拋出的數值下標越界異常。

實現代碼:

public void init(){ //棋盤格子初始化
	for(int i=0;i<10;i++){
		for(int j=0;j<15;j++){		
			board[i][j]="+";
		}
	}
    this.showBoard();
}
public void playChess(int x,int y) throws ArrayIndexOutOfBoundsException{   // 在棋盤座標(x,y)處落棋子	  
	board[x][y]="▇";
	showBoard(); //顯示棋盤
 }
 public static void main(String[] args) {
	GoBang gb = new GoBang();
	gb.init();
	Scanner input=new Scanner(System.in);
	System.out.println("請輸入所放棋子的橫座標:");
	int x=input.nextInt();
	System.out.println("請輸入所放棋子的縱座標:");
	int y=input.nextInt();
	try{ playChess(x, y); }
	catch(ArrayIndexOutOfBoundsException e){System.out.println("所放棋子橫縱座標的範圍在0~9"); }
} 

 

public class FoodFactory {
	 public static Food createFood(String type){
         	              //通過傳遞的字符串參數判斷用戶需要的食物
	              if(type.equals("mcchicken")) {
	           	 return new McChicken();
         	             }else if(type.equals("chips")) {
	                     return new Chips();
	            } else {
	                     System.out.println("對不起沒有該食物!");
	                     return null;
	          }
	  }
}
public class Client {
	public static void main(String[] args) {
	              //通過食物工廠創建食物
	             Food mcchicken=FoodFactory.createFood("mcchicken");
	             mcchicken.getFood();
	              Food chips=FoodFactory.createFood("chips");
	              chips.getFood();
	}
}

	

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章