java 程序案例_【十五个java程序案例】给个思路

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

1.3.2 Chessman类

Chessman类是一个枚举类,此类是构造器私有的,不能直接创建,里面有BLACK与WHITE两个静态属性,代表黑子与白子枚举类,两个表态属性都是Chessman类型的,要获取棋子,则通过这两个属性调用以下的方法获取棋子:

String getChessman(),返回String类型的棋子实例,“●”或者“○”。

如果我们需要得到棋子的字符串(“●”或者“○”),可以使用以下的代码。

代码清单:code\gobang\src\org\crazyit\gobang\Chessman.java

Chessman.BLACK.getChessman();

1.3.3 GobangGame类

GobangGame类是进行游戏的类,Chessboard依赖于此类,此类控制游戏的开始,重玩与结束,并影响Chessboard类。主要包含以下构造器与方法:

GobangGame(),默认无参数构造器。

GobangGame( Chessboard chessboard ),有参数构造器,以一个Chessboard实例去初始化这个类。

boolean isValid( String inputStr ),此方法验证控制台的输入字符串是否合法,如果合法,返回true,如果不合法,则返回false,此方法抛出Exception异常。

void start(),开始游戏。此方法抛出Exception异常。

boolean isReplay( String chessman ),是否重新开始游戏,如果是,返回true,否则返回false,参数chessman代表黑子或白子。

int[] computerDo(),计算机随机下棋,由计算机自动设置棋盘,并返回包含新下棋子位置x与y坐标的int[]数组类型。

boolean isWon( int posX , int posY , String ico ),判断输赢,参数posX与posY代表新下棋子的x与y坐标,ico代表新下的棋子类型,如果赢了,返回true,否则返回false。

GobangGame是我们五子棋游戏的主体类,游戏里面所有的处理都在该类中实现。GobangGame中的isValid方法用于验证控制台的输入,玩家主要在控制台输入下棋的坐标,下棋的坐标的字符串形式为:x,y,我们需要对字符串进行处理得到x和y的值,如果玩家输入的字符串不符合系统要求,则isValid方法返回false,只有当该方法返回true的时候,才会去修改Chessboard的二维数组。

GobangGame中提供了一个start方法,用于游戏的开始,我们需要考虑游戏开始的行为,例如需要初始化棋盘(调用Chessboard的init方法),需要开始从控制台读取玩家的输入信息、打印棋盘,验证控制台输入的信息等,这些功能我们将在下面的章节中加以描述。

当轮到“电脑”下棋的时候,我们需要随机生成电脑的下棋坐标,GobangGame中的computerDo方法用于随机产生坐标。

判断一局游戏是否胜利,可以调用GobangGame的isWon方法,该方法判断游戏是否胜利,是五子棋中最主要的方法,五子棋是否可以相连的所有逻辑,都会在该方法中实现。isWon方法会在每次下棋后(玩家下棋或者“电脑”下棋)调用。

到此,游戏中的三个对象已经设计完成,这三个对象中已经定义好了各种方法,并在前面章节中详细描述了各个方法的作用,在下面章节中我们将开始对这三个对象所定义的方法进行实现。当然,如果需要做到更好的程序解耦,我们可以使用一些设计模式,例如将游戏规则写成一个具体的算法,可以使用策略模式,如果需要产生出不同的棋子(将控制台换成其他界面),可以编写棋子工厂等。但是本章主要目的是展现一个最简单的五子棋,因此本章中并不涉及任何具体的设计模式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值