如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
·,·‘.…叭朋IP-…姗…用Java实现五子棋人机博弈仇宾苏双雷.,摘要:本文介绍在NeatBeanSIDE50环境中开发五子棋人机对战版的过程并且对人机博弈的基础算法进行了详细的探讨关键词:NeatBeans;五子棋;人机博弈;Java;算法ueessoar一、引言PbljChbd《){initComponents();//系统给出五子棋是一款非常经典的小游戏,相信大多数人都玩过,add《ebBoard);//加入棋盘面板.eoarseouns,,,;,bBdtBd《1010450450》其中的博弈算法很多文章都有过专门的介绍不过大都比较adJptate;//入,。,d(s)加状态面板深而且没有完整的实现过程笔者经过几天的摸索终于在..,,jpstatesetBounds《47040150300);NtB环a现。现现eaeans境中用Jav语言实该游戏在把整个实过},。程写出来供广大编程爱好者参考PrivateCBboardebBoard二newCBboard();//新建棋盘PubliePstatezPtate=newJPstate;//、JS()新建状态二设思.计路3棋盘与棋子的实现“”,五子棋人机博弈顾名思义,就是玩家与电脑下采用巧*巧的棋盘即棋盘由15条横线‘j巧条竖线拼—,*。棋,因此需要考虑如下几个方面:成共1515个下棋点ane,,oar.ava.r:,-:,J;I(l)棋盘与棋子的实现要实现五子棋首先要有玩五新建一个JPl窗体取名CBId然后J月(h。,,,。,。eawnexx子棋的平台即画出棋盘与棋子i类的击Li(一ylZyZ)函数在面板上画棋盘代码实:(2)计算机博弈算法的实现:玩家落子后,计算机要根现如下据当前的棋局寻找最佳落子点,并落子。这是本游戏的实现关ProteetedvoidPaintComPonent(GraPhiesg){,。//画棋盘键本文将会重点介绍..intw二(int)CBboardt卜15geidth();//得到棋盘的宽度:,..tw(3)输赢的判断一个游戏无论好与坏最后都要分出二inth(int)CBboardthisget日eight();//得到棋盘的高度,。要.orr.re胜负因此如何判断输赢也是重点讨论的间题9seteo一(Co一o白);//用红色线画棋盘orn=oarnel<=一oarne+=一、f《itibdliX;wbdliX;i《《w三具体设计,boardlineX*2)/(ModelMaxlineY一1)》》//画竖线.,,“”.,,一一首先打开NeatBeans并新建一个项目选择常规9drawLine《1boardlineYihboar山iney6):ornt=oane;<=一oane+二一ar-“ava”,“eess”。fiJb司IiYhbrd!iy;《《hdj目hs(1ibo应用程序项命名为.IineY*2/MoefaxlineX一1//画—.)(dM横线1川创建公共模块.9drawLine(boardlineX,J,w一boardiineX一6,」);创建公共模块是为了存放公共常量与公共变量。代码如}:下Privatefina!intboard.ineX=12;//边界宽度renantoarne=;PublieelassModel{pivatfilibdliy12//边界高度,、’Pu以iestatiefinalintMaxlinex二15;//棋盘的横线数其中代码中所定义的常量是为代码修改容易而设为J二,,PubliestatiefjnaiintMaxlineY15;//棋盘的竖线数界面美观稍稍修改一下CBI)oa司的horde:属性打开该属性」,“”“”,)框然后在可用边框里选择Beve旧order.2顶层器:,lt、创建容注意现在还无法看到所设计的棋盘原因是JPall不是,、创建顶层容器是为了实现软件模块化把软件分成棋盘顶层容器,所以还要为它建一个顶层容器,而这个容器在2中、,。状态控制等再用顶层容器去包含它们已经建好了。可以在Chessboard里预览一下效果(需要注释掉.me,sa。一raesboardav后essoar,。新建个JF窗体命名为Chj然把其ehbd里的一些代码)预览效果如图l,:现,。,它模块加进来代码实如下棋盘实现了就可以在L面添加棋子了为了实现下棋.20095、·.1技巧与纽护招,甲叫4口,声‘声户、几乡补甲矛沪,杯实用第一三智慧密集岛-.、目困抽石州协.,.一介