资源简介
AI智能人机对战五子棋(Java实现图形界面) 的代码,实现了初级人机对战
代码片段和文件信息
/**
* 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\.settings\org.eclipse.jdt.core.prefs
目录 0 2018-09-25 18:04 GoBang\bin\
目录 0 2018-09-25 18:04 GoBang\bin\GoBang\
文件 1755 2018-09-25 18:04 GoBang\bin\GoBang\Computer.class
文件 1715 2018-09-25 18:04 GoBang\bin\GoBang\GoBang_main$1.class
文件 1540 2018-09-25 18:04 GoBang\bin\GoBang\GoBang_main$2.class
文件 1019 2018-09-25 18:04 GoBang\bin\GoBang\GoBang_main$3.class
文件 1027 2018-09-25 18:04 GoBang\bin\GoBang\GoBang_main$4.class
文件 743 2018-09-25 18:04 GoBang\bin\GoBang\GoBang_main$5.class
文件 908 2018-09-25 18:04 GoBang\bin\GoBang\GoBang_main$6.class
文件 4346 2018-09-25 18:04 GoBang\bin\GoBang\GoBang_main.class
文件 854 2018-09-25 18:04 GoBang\bin\GoBang\GoChess$1.class
文件 6738 2018-09-25 18:04 GoBang\bin\GoBang\GoChess.class
目录 0 2018-01-18 14:20 GoBang\image\
文件 1352 2018-01-18 14:20 GoBang\image\Black.PNG
文件 9527 2018-01-18 14:20 GoBang\image\Computer.png
文件 8958 2018-01-18 14:20 GoBang\image\User.PNG
文件 1382 2018-01-18 14:20 GoBang\image\White.PNG
文件 8859 2018-01-18 14:20 GoBang\image\music.png
文件 3853 2018-01-18 14:20 GoBang\image\play.png
文件 3892 2018-01-18 14:20 GoBang\image\stop.png
目录 0 2018-01-18 14:20 GoBang\music\
文件 47549998 2018-01-18 14:20 GoBang\music\IF YOU-BIGBANG.wav
文件 120044 2018-01-18 14:20 GoBang\music\failure.wav
文件 23254 2018-01-18 14:20 GoBang\music\sale.wav
文件 424934 2018-01-18 14:20 GoBang\music\success.wav
目录 0 2018-01-18 14:20 GoBang\src\
............此处省略4个文件信息
- 上一篇:超市选购系统
- 下一篇:java调用百度公交系统
相关资源
- java调用百度公交系统
- 基于ssm仿慕课视频网站javaweb.zip
- JAVAEE架构设计与开发实践(配套代码
- 仓库管理系统RFID出入库货架java.zip
- 《数据结构与算法分析 java语言描述原
- 基于数据库的自动化生成工具,自动
- Java Api1.7参考文档 html
- java Web项目开发案例1-在线音乐网站
- Android 人脸识别+人脸匹配(OpenCV+Jav
- java jdk 8 帮助文档 中文 文档 chm 谷歌
- java多线程编程核心核心技_完整版+高
- 城市公交查询系统
- 基于Javamail的邮件收发系统系统+论文
- 基于java 的学生信息管理系统
- 传智播客javaweb毕业设计资料和源代码
- release-1911-x64-gdal-3-0-2-mapserver-7-4-2.zi
- java 模拟登录含验证码
- java基于ssh2的酒店管理系统
-
Java How To Program 10th Late ob
jects Java大 - java人脸识别程序基于特征脸
- jdk1.8_google_中文离线版帮助文档
- 基于javaweb的房屋租赁网站 优秀毕业
- Bayes自然图像抠图(Java实现)看评论
- 可视化JAVA SWT JFACE GUI程序设计教程课
- Java范例大全机械工业出版社源代码
- 基于web的java开发邮箱系统
- Java黑马商城代码文档数据库
- javaweb库存管理系统.rar
- 数据库课程设计之学生信息管理系统
- Java Web应用开发项目教程,习题答案
评论
共有 条评论