五子棋人人对战实现
来源:互联网 发布:千牛店铺数据模块 编辑:程序博客网 时间:2024/04/30 06:37
在十字交差点画棋子,有几种方法,第一种:获取当前鼠标点击的x,y值,
遍历整个棋盘所有的交叉点坐标,与其在一定误差范围内的交叉点坐标即
为落子的坐标点。第二种:直接将获取的x,y坐标减去棋盘外围宽度然后
再除以棋盘每格的宽度,即可得到此坐标位于棋盘的那一行那一列,然后
即可将此点为落子的点。不过这个方法不好判断在哪个交叉点。
棋子可存储,不会因为界面变化而消失,我使用的是Vector集合存储的,
因此我还另外新建了一个棋子的类,每个棋子都保存这坐标,遍历Vector
集合,取出棋子中保存的x,y值即可在棋盘上画出棋子了。另外也可以用
二维数组来存储,里面可以用1代表白棋,2代表黑棋,遍历整个数组,
碰到1则画出白棋,碰到2则画出黑棋,数组的下标即为棋子的坐标,这
样更为简便!不过二维数组在悔棋的时候不方便,因为你只能得到当前
位置的坐标,不能得到上一步棋子的坐标,故你只能悔一步棋。
点击开始才可以下棋,设置一个flag_start的标志,一旦按了开始则
flag_start=true;就可以开始画棋子了。
点击重新开始就可以重新下棋,repaint()棋盘即可,记得要把存储棋子
的数组或者集合要清空!还有存储棋盘信息的数组也要清空。
可以悔棋(我设置的是最多悔一步,黑白各可以悔一步),设置一个
back_chess用来控制要悔几个棋子。我设置的是可以悔两个,即黑
白可以各悔一个棋子。悔棋要注意悔的什么颜色的棋子接下来就应该是什么
颜色下子。
用二维数组存储整个棋盘的信息,来判断下棋输赢。获取当前落子的
棋盘坐标,以此棋子为中心,向上搜索连续的4个棋盘坐标,如果都
与其相等(即都为1或者都为2),则判断1(白棋)胜利或者2(黑棋)
胜利,如果上面只有n(n<4)个与其相等,则向下继续搜索连续的4-n个
棋盘坐标,如果都与其相等则判断1或2胜利,如果上面和下面都没有,
则没有谁胜利。其他方向一样的方法进行判断。
- 五子棋人人对战实现
- 五子棋 人人对战
- 人人对战版五子棋
- 五子棋_人人对战_小结
- 简单的五子棋(人人对战)
- android开发五子棋人人对战
- 五子棋-人人对战(一)
- 五子棋-人人对战(二)
- 期末课程设计之java实现五子棋的人机和人人对战
- 五子棋_Java_控制台窗口_人人对战
- 基于qt的五子棋 人人对战 人机对战 程序与程序对战
- NodeJS+html5+css3 带人机对战和人人对战的 五子棋
- 一款简易五子棋,实现人机,人人功能。
- java组件实现五子棋人人模式
- 百行内实现五子棋人机对战
- 五子棋人机对战的实现
- javaSocket+Android实现五子棋对战平台
- Qt实现的局域网对战五子棋
- 掌握机器学习和知识图谱很重要
- 腾迅股票数据接口 http/javascript
- poj p1182解题报告(带权并查集)
- Android资源访问机制
- java BASE64与字符串之间的转换
- 五子棋人人对战实现
- 邮件服务器mta mua
- 立于不被遗忘的角落
- ModuleLoader 加载 取.swf?runId="+runId+"&state="+state后面的参数 ...
- 项目问题跟踪表
- Android OpenGL 学习笔记 --开始篇
- txt转换pdf格式的文件的操作
- JAVA书写自定义的jsp标签(事例)
- 【C++11】nullptr