H5 C3 JS实现五子棋游戏(AI)
本文的例子分享了H5 C3 JS实现五子棋游戏的具体代码,供大家参考。具体内容如下
添加全局变量
Script //所有wins var计数之和=0;//三维数组var allWin=[]容纳所有中奖奖品;for(var I=0;i 15I){ AllWin[I]=[];for(var j=0;歼15;j){ AllWin[I][j]=[];} }//横线胜为(var I=0;i 15I){ for(var j=0;歼11;j){ for(var k=0;K5;k){ AllWin[j k][I][count]=true;}计数;} }//竖线获胜为(var I=0;i 15I){ for(var j=0;歼11;j){ for(var k=0;K5;k){ AllWin[I][j k][count]=true;}计数;} }//斜线win方法为(var I=0;i 11I){ for(var j=0;歼11;j){ for(var k=0;K5;k){ AllWin[I k][j k][count]=true;}计数;} }//反斜杠wins for(var I=14;I 3;I-){ for(var j=0;歼11;j){ for(var k=0;K5;k){ AllWin[I-k][j k][count]=true;}计数;}}/*此时,您可以输出计数。如果是572,说明上面的代码*//* alert(计数)没有问题;*///记录当前所有赢得比赛的棋子。如果是6,则表示已经被封锁无法到达*/var myWin=[];var compWin=[];for(var I=0;我数;I){ MyWin[I]=0;compWin[I]=0;}//判断游戏现在是否结束;var meover=falsevar compover=false/scriptchess.onclick的微调:用户不再玩白棋
剧本棋。onclick=function(event){//如果游戏结束或者点数已经下降如果(me over | | compound | | curindex[x][y]!=0)返回;//获取待下棋子的位置var x=math . floor(event.offsetx/30);var y=math . floor(event . offset/30);//开始绘制上下文. BeginPath();//绘制指定的圆context.arc (15 x * 30,15 y * 30,15,0,2 * math . pi);context.fillStyle=' # 636766context . fill();//当前位置已被玩家降低。curIndex[x][y]=1;1 }/脚本判断玩家是否获胜:在上面的代码1处添加代码。
脚本为(var k=0;k计数;K ){ if(allWin[x][y][k]){ //获胜步数增加1。如果是5,表示所有的制胜步骤都达到了。//中奖电脑不可达,设为6 myWin[k];compWin[k]=6;} if(MyWin[k]==5){ alert(' you win ');复合物;} } if(compover)返回;//计算机AI算法检测下一步AIcode();2/scriptAI算法核心
脚本函数AIcode(){ //表示所有位置的玩家总分数和电脑总分数var myScore=[];var compScore=[];for(var I=0;I 15I){ myScore[I]=[];compScore[I]=[];for(var j=0;歼15;j){ myScore[I][j]=0;compScore[I][j]=0;} } //对分数进行统计判断,选出分数最大的位置进行电脑下棋var max=0;var MaxX=0;var MaxY=0;//创建加分规则for(var I=0;I(15I){ for(var j=0;歼15;j){ if(Curindex[I][j]==0){ for(var k=0;k计数;k){ if(all win[I][j][k]){ if(MyWin[k]==1){ my core[I][j]=200;} else if(MyWin[k]==2){ MyCore[I][j]=500;} else if(MyWin[k]==3){ MyCore[I][j]=2000;} else if(MyWin[k]==4){ MyCore[I][j]=50000;} if(CompWin[k]==1){ Compscore[I][j]=300;} else if(CompWin[k]==2){ Compscore[I][j]=800;} else if(CompWin[k]==3){ Compscore[I][j]=20000;} else if(CompWin[k]==4){ Compscore[I][j]=500000;} } } if(MyScore[I][j]max){ max=MyScore[I][j];maxX=I;maxY=j;} if(Compscore[I][j]max){ max=Compscore[I][j];maxX=I;maxY=j;} } } } //进行最终下棋语境。begin path();context.arc(15 maxX *30,15 maxY *30,15,0,2 *Math .PI);context . FillStyle=' # fefefecontext。fill();//标记当前位置已经被白棋占据curIndex[MaxX][MaxY]=2;3背景。close path();};/script电脑是否赢进行判断3
脚本为(var k=0;k计数;k){ if(AllWin[MaxX][MaxY][k]){ CompWin[k];myWin[k]=6;} if(compWin[k]==5){ alert('你输了');meover=true} }/脚本实现效果图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
版权声明:H5 C3 JS实现五子棋游戏(AI)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。