编写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();
}
}
编写Java程序,模拟五子棋博弈过程中的异常声明和异常抛出的更多相关文章
- 编写Java程序,创建Dota游戏中的兵营类,兵营类有一个类成员变量count、一个实例变量name和另一个实例变量selfCount。
返回本章节 返回作业目录 需求说明: 创建Dota游戏中的兵营类 兵营类有一个类成员变量count.一个实例变量name和另一个实例变量selfCount. count表示的是兵营已经创建士兵的总数: ...
- 编写Java程序,创建Dota游戏中的防御塔类,通过两个坐属性显示防御塔所在的位置
返回本章节 返回作业目录 需求说明: 创建Dota游戏中的防御塔类 通过两个坐属性显示防御塔所在的位置 实现思路: 创建防御塔(TowerDefense)类 在该类中定义了两个属性,分别是int类型横 ...
- 编写Java程序,在子类老虎中重写父类动物的吃食方法
返回本章节 返回作业目录 需求说明: 在子类老虎中重写父类动物的吃食方法 实现思路: 在子类老虎中重写父类动物的吃食方法的实现思路如下: 创建各种动物的父类Animal类,在该类中定义eat()方法. ...
- 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book)、一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户,使用简单工厂模式模拟这一过程。
查看本章节 查看作业目录 需求说明: 编写Java程序,用户在网上购买商品(good),当用户买了一本书(book).一顶帽子(hat)或者买了一双鞋子(shoe),卖家就会通过物流将商品邮寄给用户, ...
- 编写Java程序,车站只剩 50 张从武汉到北京的车票,现有 3 个窗口售卖,用程序模拟售票的过程,使用Runnable解决线程安全问题
查看本章节 查看作业目录 需求说明: 车站只剩 50 张从武汉到北京的车票,现有 3 个窗口售卖,用程序模拟售票的过程,要求使用同步方法保证售票过程中票数的正确性 实现思路: 创建 Java 项目,在 ...
- 35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n
35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现in ...
- 初学编写JAVA程序
一.编写JAVA程序 编写JAVA程序,输出一行文本信息:“Hello world”,选择编辑器eclipse,打开之后编写程序 public class Hello{ public static v ...
- java程序的加载过程
昨天笔试阿里有个求java程序加载过程的题目很是复杂,回来研究了好久才有点明白,整理一下.原题代码如下,判断输出: public class StaticTest { public static in ...
- Java初学者作业——编写JAVA程序,计算跳水运动员本次动作的最终得分。
返回本章节 返回作业目录 需求说明: 编写JAVA程序,计算跳水运动员本次动作的最终得分. 规则如下: 在跳水比赛中,共有六位裁判对运动员所完成的动作进行评分,每位裁判的评分在0-10之间,运动员最终 ...
随机推荐
- java网站架构设计
涉及到的技术及工具:java,springmvc,ibatis,freemarker,mysql,mongdb,memcached,ehcache,maven. 一个网站不可能说一开始就是要设计一个能 ...
- Virtual functions in derived classes
In C++, once a member function is declared as a virtual function in a base class, it becomes virtual ...
- FastJson简介
FastJson简介 首先,介绍一下fastjson.fastjson是由alibaba开源的一套json处理器.与其他json处理器(如Gson,Jackson等)和其他的Java对象序列化反序列化 ...
- Mac 下安装Phonegap开发环境
Mac 下安装Phonegap开发环境 2014.09.11 星期四 评论 0 条 阅读 5,613 次 作者:野草 标签:phonegap ios mac 什么是Phonegap呢?Phon ...
- net start Mysql 启动服务时 ,显示"Mysql服务正在启动 Mysql服务无法启动 服务没有报告任何错误
一.问题 有时候,输入net start Mysql 启动服务时 mysql>net start Mysql 显示 Mysql服务正在启动 Mysql服务无法启动 服务没有报告任何错误 二.原因 ...
- [BUUCTF]REVERSE——[ACTF新生赛2020]Oruga
[ACTF新生赛2020]Oruga 附件 步骤: 例行检查,64位程序,无壳 64位ida载入,检索字符串,根据提示来到关键函数 14行~18行就是让字符串的前5位是 actf{ ,sub_78A( ...
- Docker从入门到精通(六)——容器通信
想要变成 Docker 的高阶玩家,搞懂 Docker 的容器通信是必不可少的. 1.需求 通常一个 Web 项目上线,我们会把开发完成的服务部署在Tomcat 服务器里面,然后需要的持久化数据会存放 ...
- 『学了就忘』Linux系统管理 — 85、工作管理相关命令
目录 1.工作管理简介 2.如何把命令放入后台 3.后台管理命令 (1)查看后台的工作 (2)将后台暂停的工作恢复到前台执行 (3)把后台暂停的工作恢复到后台执行 4.后台命令脱离登录终端运行 1.工 ...
- GDAL重投影重采样像元配准对齐
研究通常会涉及到多源数据,需要进行基于像元的运算,在此之前需要对数据进行地理配准.空间配准.重采样等操作.那么当不同来源,不同分辨率的数据重采样为同一空间分辨率之后,各个像元不一一对应,有偏移该怎么办 ...
- CF938B Run For Your Prize 题解
Content 有两个人,一个在 \(1\) 处,一个在 \(10^6\) 处,在他们之间有 \(n\) 个奖品,第 \(i\) 个奖品在 \(a_i\) 处.一开始在 \(1\) 处的人每秒可向右移 ...