编写Java程序,模拟五子棋博弈过程中的异常声明和异常抛出

返回本章节

返回作业目录


需求说明:

模拟五子棋博弈过程中的异常声明和异常抛出,判断用户所下棋子的位置,是否超越了棋盘的边界。

棋盘的横坐标的范围为0~9,纵坐标范围为0~14,如果用户所放棋子的坐标超出了坐标范围,捕获系统抛出的异常,给出友好的提示信息。

编写Java程序,模拟五子棋博弈过程中的异常声明和异常抛出_第1张图片

实现思路:

所放棋子的坐标超出了坐标范围异常处理的实现思路:

  • 创建五子棋类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();
	}
}

	

 

你可能感兴趣的:(#,Java面向对象练习习题)