java 五子棋小结

来源:互联网 发布:网络销售对话技巧 编辑:程序博客网 时间:2024/05/21 09:19
这个五子棋是自己写的第一个游戏,在这里做一下总结。


1.界面
javax.swing.JFrame可以画出简单的界面,
然后用java.awt.Image,javax.swing.Icon,javax.swing.ImageIcon 这三个类下的方法给界面添加背景图片,
实现代码:
Image image = new ImageIcon("添加图片的相对后绝对路径").getImage();
drawImage(Image img, int x, int y,int width, int height,ImageObserver observer);
最后画棋盘,通过for循环画出16*16的表格


2.画棋子
fillOval(int x, int y, int width, int height)方法填充圆形作为棋子,并选出棋子颜色。
创建一个二维数组chesses[int][int],来记录棋盘上是否有棋子,并记录棋子的颜色(chesses[int][int]==0时
棋盘上没有棋子;chesses[int][int]==1时,棋盘上有白棋;chesses[int][int]==-1时,棋盘上有白棋)


3.双人模式
其实能下棋子就可以进行双人模式了,在这里需要的就是下黑白棋和判断输赢的算法了。
判断下棋的颜色可以用bool类型的变量来控制(boolean b=true 下白棋,b=false 下黑棋)
判断输赢的算法:
  以当前所下的棋子为中心,判断它的八个方向,任意一个方向有五个相同的棋子,那么一方获胜,游戏结束。
可以设变量先计算每个方向的棋子数,再通过chesses的值来判断黑棋还是白棋获胜。


4.人机对战
需要在创建一个二维数组,来存储每个位子上的权值。
当人方下一颗棋子后,遍历它周围棋子的情况,赋予权值记录在数组中,当电脑下棋之前会遍历整个棋盘
选择权值最高的位置下棋。


5.悔棋和清空棋盘(实现重绘的基础上)
悔棋:在存放棋子的队列中取出最后一个棋子,删掉,改变chesses数组的值和boolean b
的值,以确保在悔棋之后下同色的棋子。

清空棋盘(即初始化棋盘):将存放棋子的队列清空,将chesses数组清空,将权值数组清空。


下面是游戏的一些图片:



原创粉丝点击