五子棋应该是所有棋类游戏中规则最简单的一种了,对应着我们写代码,也是最简单,我们今天就来根据学过的知识,写一个五子棋玩一玩。
基本界面
五子棋首先要画出界面,界面其实并不麻烦,但是在画出界面之前,肯定首先需要计算一下,不然脑子里面会完全是乱的.
首先,我们约定整个棋盘是 15 * 15 的大小
其次,棋盘格子和格子之间肯定是有距离的,我们约定,每个格子之间的距离是35
当然为了让棋盘稍微美观一点,我们可以为棋盘加上一点背景色.为了让大家看到的更加直观,整个棋盘的布局,如下图:
1.整个Swing界面的大小
2.棋盘的大小
这里要稍微注意的一点是,这个棋盘是 15 * 15的大小,但是棋盘的格子其实只有14个,所以有线框的部分实际只有 490 * 490 的大小
3.棋盘和Swing边框周围的计算
所以,根据上面的图像,先来编写代码
编写代码
根据面向对象的思想,将代码划分了3个类去编写:
BoardPanel类专门负责画出棋盘
Board类负责画出旗子以及判定胜负
GameFrame类画出主面板
首先来看画出棋盘的类BoardPanel.java,既然专门负责画出棋盘,所以让这个类直接去继承Panel类,然后paint出相应的图像就ok
BoardPanel.java
|
|
可以将这个放入到棋盘当如到Swing界面上,编写代码创建GameFrame.java
GameFrame.java
|
|
这样执行代码,一个棋盘就出来了,接下来实现点击出现棋子,而棋子我们需要单独的类来生成,编写Board代码,并将之前的代码稍微修改
Board.java
|
|
修改BoardPanel.java文件,加入棋子的绘制
BoardPanel.java
|
|
修改GameFrame.java代码,加入鼠标点击事件和相应的判断
GameFrame.java
|
|
这样,我们就可以再棋盘上落子了,只是还不能判断输赢而已
所以接下来,我们在棋子类中加入判断输赢的代码
Board.java
|
|
这里修改Board.java代码其实主要就是加上了输赢判断,要判断输赢,就是判断横,输,左斜,右斜是否连续是一个颜色并且连成5个
最后在GameFrame.java中加入相应的代码和点击开始游戏的按钮
GameFrame.java
|
|