AI智能人机对战五子棋(Java实现图形界面) 的代码,实现了初级人机对战
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-01-18 14:20 GoBang
文件 301 2018-01-18 14:20 GoBang.classpath
文件 382 2018-01-18 14:20 GoBang.project
目录 0 2018-01-18 14:20 GoBang.settings
文件 598 2018-01-18 14:20 GoBang.settingsorg.eclipse.jdt.core.prefs
目录 0 2018-09-25 18:04 GoBangin
目录 0 2018-09-25 18:04 GoBanginGoBang
文件 1755 2018-09-25 18:04 GoBanginGoBangComputer.class
文件 1715 2018-09-25 18:04 GoBanginGoBangGoBang_main$1.class
文件 1540 2018-09-25 18:04 GoBanginGoBangGoBang_main$2.class
文件 1019 2018-09-25 18:04 GoBanginGoBangGoBang_main$3.class
文件 1027 2018-09-25 18:04 GoBanginGoBangGoBang_main$4.class
文件 743 2018-09-25 18:04 GoBanginGoBangGoBang_main$5.class
文件 908 2018-09-25 18:04 GoBanginGoBangGoBang_main$6.class
文件 4346 2018-09-25 18:04 GoBanginGoBangGoBang_main.class
文件 854 2018-09-25 18:04 GoBanginGoBangGoChess$1.class
文件 6738 2018-09-25 18:04 GoBanginGoBangGoChess.class
目录 0 2018-01-18 14:20 GoBangimage
文件 1352 2018-01-18 14:20 GoBangimageBlack.PNG
文件 9527 2018-01-18 14:20 GoBangimageComputer.png
文件 8958 2018-01-18 14:20 GoBangimageUser.PNG
文件 1382 2018-01-18 14:20 GoBangimageWhite.PNG
文件 8859 2018-01-18 14:20 GoBangimagemusic.png
文件 3853 2018-01-18 14:20 GoBangimageplay.png
文件 3892 2018-01-18 14:20 GoBangimagestop.png
目录 0 2018-01-18 14:20 GoBangmusic
文件 47549998 2018-01-18 14:20 GoBangmusicIF YOU-BIGBANG.wav
文件 120044 2018-01-18 14:20 GoBangmusicfailure.wav
文件 23254 2018-01-18 14:20 GoBangmusicsale.wav
文件 424934 2018-01-18 14:20 GoBangmusicsuccess.wav
目录 0 2018-01-18 14:20 GoBangsrc
............此处省略4个文件信息
/**
* 2017年6月25日Computer.java我和奥巴马
*/
package GoBang;
import java.util.Random;
/**
* @author 我和奥巴马
* @date 2017年6月25日
* @filename Computer.java
* @description TODO
*/
public class Computer {
static int depth=1;
static int computerColor=GoChess.BLACK;
/*alpha_beta剪枝搜索寻找着点
Alpha,即搜索到的最好值,任何比它更小的值就没用了,因为策略就是知道Alpha的值,任何小于或等于Alpha的值都不会有所提高
Beta,即对于对手来说最坏的值。这是对手所能承受的最坏的结果,因为我们知道在对手看来,他总是会找到一个对策不比Beta更坏的。
如果搜索过程中返回Beta或比Beta更好的值,那就够好的了,走棋的一方就没有机会使用这种策略了*/
public static int alpha_betaFind(int depthint alphaint betaint colorint xint y){
if(depth>Computer.depth||GoChess.isEnd(xycolor%2+1)!=0){
int ans =GoChess.reckon(computerColor)-GoChess.reckon(computerColor%2+1);
if(depth%2==0)
ans=-ans;
return ans;
}
for(int i=1;i for(int j=1;j if(!GoChess.isEmpty(ij))
continue;
GoChess.sureMove(ijcolor);
int val=-alpha_betaFind(depth+1-beta -alphacolor%2+1ij); //ans的值给val
GoChess.blank(ij);
if(val>=beta)
return beta; //返回比beta好的值 val=(-ans)>=-beta====beta<=-val //所以加个 - 号
if(val>alpha)
alpha=-val; //返回比alpha更坏的值val=(-ans)<-alpha====val>alpha
}
}
return alpha;
}
public static int[] getNext(int color){
int rel[]=new int[2];
int ans=-100000000;
Random random=new Random(47);
if(GoChess.number(GoChess.BLACK)<1){
if(GoChess.table[GoChess.COLS/2][GoChess.ROWS/2]!=computerColor){ //电脑后手需定位
if(GoChess.isEmpty(GoChess.COLS/2GoChess.ROWS/2)){ //中点
rel[0]=GoChess.COLS/2;
rel[1]=GoChess.ROWS/2;
}
else{
rel[0]=GoChess.COLS/2+1; //向右占位
rel[1]=GoChess.ROWS/2;
}
}
}else{
for(int x=1;x for(int y=1;y if(!GoChess.isEmpty(x y))
continue;
GoChess.sureMove(x y color); //黑棋落子
int val=-alpha_betaFind(0-100000000100000000color%2+1xy); //判断白棋局面
int ran=random.nextInt(100); //100是不包含在内的,只产生0~100之间的数
if(val>ans||val==ans&&ran>50){ //val(-递归返回值)<-ans=====val>ans ||ans一直被刷新
ans=val;
rel[0]=x;
rel[1]=y;
}
GoChess.blank(x y);
}
}
}
return rel;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-01-18 14:20 GoBang
文件 301 2018-01-18 14:20 GoBang.classpath
文件 382 2018-01-18 14:20 GoBang.project
目录 0 2018-01-18 14:20 GoBang.settings
文件 598 2018-01-18 14:20 GoBang.settingsorg.eclipse.jdt.core.prefs
目录 0 2018-09-25 18:04 GoBangin
目录 0 2018-09-25 18:04 GoBanginGoBang
文件 1755 2018-09-25 18:04 GoBanginGoBangComputer.class
文件 1715 2018-09-25 18:04 GoBanginGoBangGoBang_main$1.class
文件 1540 2018-09-25 18:04 GoBanginGoBangGoBang_main$2.class
文件 1019 2018-09-25 18:04 GoBanginGoBangGoBang_main$3.class
文件 1027 2018-09-25 18:04 GoBanginGoBangGoBang_main$4.class
文件 743 2018-09-25 18:04 GoBanginGoBangGoBang_main$5.class
文件 908 2018-09-25 18:04 GoBanginGoBangGoBang_main$6.class
文件 4346 2018-09-25 18:04 GoBanginGoBangGoBang_main.class
文件 854 2018-09-25 18:04 GoBanginGoBangGoChess$1.class
文件 6738 2018-09-25 18:04 GoBanginGoBangGoChess.class
目录 0 2018-01-18 14:20 GoBangimage
文件 1352 2018-01-18 14:20 GoBangimageBlack.PNG
文件 9527 2018-01-18 14:20 GoBangimageComputer.png
文件 8958 2018-01-18 14:20 GoBangimageUser.PNG
文件 1382 2018-01-18 14:20 GoBangimageWhite.PNG
文件 8859 2018-01-18 14:20 GoBangimagemusic.png
文件 3853 2018-01-18 14:20 GoBangimageplay.png
文件 3892 2018-01-18 14:20 GoBangimagestop.png
目录 0 2018-01-18 14:20 GoBangmusic
文件 47549998 2018-01-18 14:20 GoBangmusicIF YOU-BIGBANG.wav
文件 120044 2018-01-18 14:20 GoBangmusicfailure.wav
文件 23254 2018-01-18 14:20 GoBangmusicsale.wav
文件 424934 2018-01-18 14:20 GoBangmusicsuccess.wav
目录 0 2018-01-18 14:20 GoBangsrc
............此处省略4个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)