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
的值,以确保在悔棋之后下同色的棋子。
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数组清空,将权值数组清空。
下面是游戏的一些图片:
- java 五子棋小结
- java五子棋
- JAVA五子棋
- java 五子棋
- Java五子棋
- java 五子棋
- java 五子棋
- 五子棋JAVA
- Java五子棋
- Java五子棋
- java五子棋
- java 五子棋
- java 五子棋
- 五子棋java描述
- java五子棋游戏 代码
- 五子棋java编程
- 简单五子棋java源码
- java--五子棋程序
- 正则表达式 例子
- 广义线性模型
- Linux C SQLite3 编程
- linux 查看网关
- 【字典树】hdu 2846 Repository
- java 五子棋小结
- 查看linux 操作系统版本
- 基于运放的放大电路分析
- 记录一下收获和感想
- LinearLayout——线性布局(上)
- Ubuntu 1 安装JDK7
- mtd-utils工具--下载编译篇
- Word2007分节、分页、设不同页码的方法
- java 入门学习(五) 怎么定义类,定义方法