资源简介
带人工智能的五子棋java源程序,可以在控制台和web以及exe三种方式运行。
代码片段和文件信息
///杨建国:ChessBot.java
// The fivelink bot
import java.math.*;
import java.lang.*;
import java.awt.*;
public class ChessBot
{
class linkInfo
{
public boolean islinkN;
public int isLive[]; //0死链,1半活链,2活链([0]-[3]表横竖左斜右斜)
public int linknum[]; //([0]死链,[1]半活链,[2]活链)
linkInfo()
{
islinkN=false;
isLive=new int[4];
linknum=new int[3];
}
public String toString()
{
String r=new String(“islinkN=“+islinkN+“;isLive[0~3]=“+isLive[0]+isLive[1]+isLive[2]+isLive[3]+“;linknum[0~2]=“+linknum[0]+linknum[1]+linknum[2]);
return r;
}
public int getLiveNum()
{
int lvn=0;
for(int i=0;i<4;i++)
if(isLive[i]==2) lvn++;
return lvn;
}
public int getHLiveNum()
{
int lvn=0;
for(int i=0;i<4;i++)
if(isLive[i]==1) lvn++;
return lvn;
}
public int getDeathNum()
{
int lvn=0;
for(int i=0;i<4;i++)
if(isLive[i]==0) lvn++;
return lvn;
}
}
private int N; //棋盘边长
private int HUMAN; //人下的棋子
private int BOT; //机器人下的棋子
private int NONE; //没有棋子
private int isChessOn [][]; //存放棋局
private int deep; //递归深度
private int MAXDEEP; //最大递归深度
private int step; //当前是第几步
private Point last[];//[0]是敌人,[1]是机器人
ChessBot(int r_n)
{
N=r_n;
HUMAN=1;
BOT=-1;
deep=0;
MAXDEEP=1;
step=0;
isChessOn=new int[N][N];
last=new Point[2];
}
public void restart() //重开一局
{
HUMAN=1;
BOT=-1;
deep=0;
step=0;
for(int i=0;i for(int j=0;j isChessOn[i][j]=NONE;
for(int i=0;i<2;i++)
{
last[i].x=0;
last[i].y=0;
}
}
public void rollback() //悔棋
{
for(int i=0;i<2;i++)
isChessOn[last[i].x][last[i].y]=NONE;
step--;
}
public Point play(int xint y) //机器人走一步棋
{
deep=0;
isChessOn[x][y]=HUMAN;
// System.out.println(“x=“+x+“ y=“+y+“ isChessOn[x][y]=“+isChessOn[x][y]);
Point r=new Point();
r=next(BOT);
isChessOn[r.x][r.y]=BOT;
step++;
System.out.println(“step “+step+“:-----------------------------------------------“);
for(int i=0;i for(int j=0;j {
if(isChessOn[j][i]!=-1)System.out.print(new String(“ “+isChessOn[j][i]));
else System.out.print(isChessOn[j][i]);
}
last[0]=new Point(xy);
last[1]=new Point(r);
return r;
}
public Point playfirst() //机器人先手
{
isChessOn[7][7]=BOT;
step++;
last[0]=new Point(77);
last[1]=last[0];
return new Point(77);
}
private linkInfo islinkn(int xint yint typeint nn) //计算当前位置type方是否有nn子相连,相连的情况
{
int i=0;
int j=0;
int i1j1;
int successFactor_v=0; //横向五子连珠
int successFactor_h=0; //纵向五子连珠
int successFactor_l=0; //左斜线五子连珠
int successFactor_r=0; //右斜线五子连珠
int live_v=0; //空格数
int live_h=0;
int live_l=0;
int live_r=0;
int islive1=0; //计算半死和活的临时变量
int islive2=0;
boolean isInt=false; //棋子链是(true)否(false)中断
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2009-09-07 17:34 Gobang_xingzhe2001\
文件 1240 2004-11-02 23:54 Gobang_xingzhe2001\blackchess.GIF
文件 1238 2004-11-08 15:30 Gobang_xingzhe2001\ChessBot$li
文件 6068 2004-11-08 15:30 Gobang_xingzhe2001\ChessBot.class
文件 2067 2004-11-08 15:30 Gobang_xingzhe2001\ChessMap$Menuitemclicked.class
文件 1597 2004-11-08 15:30 Gobang_xingzhe2001\ChessMap$Mouseclicked.class
文件 723 2004-11-08 15:30 Gobang_xingzhe2001\ChessMap$MouseMoved.class
文件 765 2004-11-03 00:53 Gobang_xingzhe2001\ChessMap$Mylis.class
文件 3922 2004-11-08 15:30 Gobang_xingzhe2001\ChessMap.class
文件 4394 2004-11-08 15:30 Gobang_xingzhe2001\ChessPanel.class
文件 1298 2004-11-01 17:37 Gobang_xingzhe2001\Console.class
文件 242831 2004-11-08 17:39 Gobang_xingzhe2001\fiveli
文件 2887 2004-11-08 18:54 Gobang_xingzhe2001\index.html
文件 128974 2004-11-03 00:01 Gobang_xingzhe2001\map.GIF
目录 0 2004-11-08 15:35 Gobang_xingzhe2001\src\
文件 1240 2004-11-02 23:54 Gobang_xingzhe2001\src\blackchess.GIF
文件 12795 2004-11-08 15:20 Gobang_xingzhe2001\src\ChessBot.java
文件 5960 2004-11-08 15:10 Gobang_xingzhe2001\src\ChessMap.java
文件 5998 2004-11-08 15:13 Gobang_xingzhe2001\src\ChessPanel.java
文件 1276 2004-11-01 17:37 Gobang_xingzhe2001\src\Console.java
文件 128974 2004-11-03 00:01 Gobang_xingzhe2001\src\map.GIF
文件 1603 2004-11-02 23:54 Gobang_xingzhe2001\src\whitechess.GIF
文件 1603 2004-11-02 23:54 Gobang_xingzhe2001\whitechess.GIF
- 上一篇:java混淆jocky,不限jdk版本
- 下一篇:银行系统server数据库
相关资源
- 清华大学人工智能大作业源码
- java五子棋网络版
- java五子棋源码人人
- Java开发的——网络、单机二合一——
- 五子棋 java版 博弈算法
- Java五子棋联机版windowbuilder界面
- JAVA五子棋简单实现
- 基于socket编写的java五子棋
- JAVA网络五子棋毕业设计含源代码
- Java五子棋经典程序,非常详细
- 基于Android的五子棋游戏设计
- 人工智能机器人alice的java版源代码A
- 基于java实现的决策树代码
- 人工智能实验 ID3决策树java实现
- 基于Java开发的网络五子棋源码
- Android手机版Java五子棋源代码
- 网络课程设计 Java五子棋网络版
- 双人玩的Java五子棋游戏
- android五子棋大作业
- 人工智能专家系统动物识别系统JAVA
- GUI版Java五子棋源码,可人机对战,经
- Java 五子棋 毕业设计 毕业论文 全套一
- java带聊天的五子棋 适合新手
- 八数码问题(附实验报告文档java实现
- 一个动物识别专家系统在 JAVA语言下的
- 基于Android平台下的五子棋开发
- java版围棋v4
- Java实现五子棋AI算法
- 人工智能微信小程序之识别图片上的
- 服务器端和客户端五子棋
评论
共有 条评论