JAVA五子棋项目总结
来源:互联网 发布:域名在哪里购买 编辑:程序博客网 时间:2024/05/17 09:02
五天左右的时间完成了五子棋项目一些基本操作,对此项目的功能实现主要
人人对战,人机算法暂且不论。。。。
对人人对战中,主要难度在于判断胜利条,黑白棋子重绘功能,以及悔棋功能的实现。
棋盘的绘制主要应用重绘功能加上个for循环(代码如下):
(这里绘制的是12横线12竖线的棋盘)
public void paint(Graphics g){
super.paint(g);
//画横线
for (int i = 0; i < 12; i++) {
g.drawLine(20, 20+40*i, 460,20+40*i );//利用直线功能绘制横线,(20, 20+40*i, 460,20+40*i ) 为坐标
}
//画竖线
for (int i = 0; i < 12; i++) {
g.drawLine(20+40*i,20,20+40*i,460);
}
旗子的实现:
for (int i = 0; i < list.size(); i++) {
g.setColor(color);
g.fillOval(x-15,y-15,30,30);
}
}
而判断下棋子是黑白这里我则用了boolean来实现
boolean bool = false;
//如果bool是true则棋子是白色,否则为黑色
if(bool==true){
g.setColor(Color.WHITE);
color=Color.WHITE;
all[yM][xM] = Color.WHITE; //当前坐标有棋子当再次被点击时,则颜色不变
bool=!bool;
}else{
g.setColor(Color.BLACK);
color=Color.BLACK;
all[yM][xM]=Color.BLACK;
bool=!bool;
}
之后更是输赢的算法是,这里只说横排判断方法:
public boolean checkWin(int xM,int yM){
Color c = all[yM][xM]; //首先获得起点棋子的颜色
int qizi=1; //棋子初始为1
int XM;
XM=xM-1; //棋子的坐标向右移
Color color=all[yM][XM]; //获得棋子右移的颜色
while(true){
XM--;
if(XM<0){ //当检测坐标超出棋盘范围是则停止
break;
}
if(color==c){ //检测右移后的棋子颜色与初始棋子颜色是否相同
qizi= qizi+1; //棋子个数加一
color=all[yM][XM];
}else{
break;
}
}
XM=xM+1; //棋子的坐标向左移
// System.out.println(XM+""+yM);
color=all[yM][XM]; //获得
while(true){
XM++;
if(XM>11){
break;
}
if(color==c){
qizi= qizi+1; //棋子个数加
color=all[yM][XM];
}else{
break;
}
}
if(qizi>=5){ //检测棋子颜色相同的个数大于或者等于5
return true;
}else{
return false;
}
}
最后在到鼠标监听器调用此方法即可(因为检测的是当前下棋是坐标的棋子)
如: /**
* 调用checkWin方法
*/
boolean ifWin = checkWin(xM,yM);
if(ifWin){
//如果赢了,则提示胜利
JOptionPane.showMessageDialog(Wqz.this, "胜利","提示",
JOptionPane.ERROR_MESSAGE);
all=new Color[12][12];
list.clear(); //清空棋盘数据
repaint();
return;
}
姑且做到此处。。。。。。。。。。。。。。。。。。。。。
- JAVA五子棋项目总结
- 五子棋项目的总结
- java小项目--五子棋
- C#五子棋系统项目总结
- java swing实现五子棋小游戏项目源码
- 五子棋总结
- 五子棋总结
- 五子棋总结
- java五子棋
- JAVA五子棋
- java 五子棋
- Java五子棋
- java 五子棋
- java 五子棋
- 五子棋JAVA
- Java五子棋
- Java五子棋
- java五子棋
- POJ3186:Treats for the Cows
- Uva - 712 - S-Trees
- java中包的命名
- cvLoadImage无法载入图像,返回空指针
- Windows 2008R2部署Win 7/2008R2+Office2010(+2013)+Win 8/2012(+win8.1/2012R2) KMS激活服务器
- JAVA五子棋项目总结
- Linux常用指令
- Java并发编程-26-异步运行任务
- 创建loopback环回网卡
- leetcode----数字
- 路由器WAN口和LAN口的区别
- Netty权威指南之NIO入门
- 2015-6-18 按钮菜单图片(正常,按下);scheduleUpdate;移动背景
- 博弈论汇总