• 大小: 459KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: Java
  • 标签: 五子棋  人工智能  

资源简介

带人工智能的五子棋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$linkInfo.class
     文件        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\fivelinkW.exe
     文件        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

评论

共有 条评论