html css js五子棋
来源:互联网 发布:有毒网络剧歌曲 编辑:程序博客网 时间:2024/05/21 22:45
花了点时间写个五子棋,还可以用,,
1.index.html
<!DOCTYPE html><html><head><title>Five</title><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="index.css"></head><script type="text/javascript" src="new.js"></script><script type="text/javascript" src="paint.js"></script><script type="text/javascript" src="button.js"></script><script type="text/javascript" language="JavaScript">window.onload = function(){paint_chess();//画棋盘}var temp2= 0;function mouse(){if(started == 1){var ad = getMousePos();step++;var stepp = document.getElementById("step");stepp.innerHTML = "当前步数:"+step;var score = document.getElementById("score");if(chessboard[ad.x][ad.y] == 0){add_chessman(ad,turn)if(1 == xianshou)circle(ad.x*weight+8,ad.y*weight+8,14,"#fff");elsecircle(ad.x*weight+8,ad.y*weight+8,14,"#000");turn = 1;var nn = check();if(nn == 1){alert("电脑胜利!");step=0;win_times[0]++;score.innerHTML="电脑胜利:"+win_times[0]+"<br/>人胜利:<br/>"+win_times[1];started = 0;return;}else if(nn == 2){alert("恭喜你,你赢了!");step=0;win_times[1]++;score.innerHTML="电脑胜利:"+win_times[0]+"<br/>人胜利:<br/>"+win_times[1];started = 0;return ;}initialize();pingfe();var temp = sosuo(turn);if(chessboard[temp.x][temp.y] == 0){add_chessman(temp,turn)if(1 == xianshou){circle(temp.x*weight+8,temp.y*weight+8,14,"#000");circle(temp.x*weight+8,temp.y*weight+8,4,"#f00");circle(temp2.x*weight+8,temp2.y*weight+8,5,"#000");}else{circle(temp.x*weight+8,temp.y*weight+8,14,"#fff");circle(temp.x*weight+8,temp.y*weight+8,4,"#f00");circle(temp2.x*weight+8,temp2.y*weight+8,5,"#fff");}temp2 = temp;turn = 2;}var nn = check();if(nn == 1){alert("电脑胜利!");win_times[0]++;step=0;score.innerHTML="电脑胜利:"+win_times[0]+"<br/>人胜利:<br/>"+win_times[1];started = 0;}else if(nn == 2){alert("恭喜你,你赢了!");step=0;win_times[1]++;score.innerHTML="电脑胜利:"+win_times[0]+"<br/>人胜利:<br/>"+win_times[1];started = 0;}}}}</script><body bgcolor="#39f"><canvas id="myCanvas" width="450px" height="450px" onclick="mouse()"></canvas><input type="button" value="电脑先手" onclick="first()" id="first"><input type="button" value="开 始" onclick="start()" id="start"><div id = "step" style="text-align:center;">当前步数:0</div><div id="score">五子棋</div><select id="sele" onchange="geta()"> <option value="0">初级</option> <option value="1">高级</option></select></body></html>主要页面的大致布局,
2.paint.js
var weight = 31;//棋盘间距var bianx = 8;function paint_chess(){//画棋盘var canvas=document.getElementById('myCanvas');var ctx=canvas.getContext('2d');ctx.fillStyle='#DDB844';ctx.fillRect(0,0,450,450);var startx = bianx;var starty = bianx;var endx = bianx;var endy = 450-bianx;ctx.lineWidth=2;for(var i = 1;i<=15;i++ ){ctx.beginPath();ctx.moveTo(startx,starty);ctx.lineTo(endx,endy);ctx.stroke();startx = weight*i+bianx;endx = weight*i+bianx;}startx = bianx;starty = bianx;endx = 450 - bianx;endy = bianx;for(var i = 1;i<=15;i++ ){ctx.beginPath();ctx.moveTo(startx,starty);ctx.lineTo(endx,endy);ctx.stroke();starty = weight*i+bianx;endy = weight*i+bianx;}circle(3*weight+bianx,3*weight+bianx,4,'#000');circle(3*weight+bianx,11*weight+bianx,4,'#000');circle(11*weight+bianx,3*weight+bianx,4,'#000');circle(11*weight+bianx,11*weight+bianx,4,'#000');circle(7*weight+bianx,7*weight+bianx,5,'#000');}//画圆形function circle(x,y,radius,color){var canvas=document.getElementById('myCanvas');var ctx=canvas.getContext('2d');ctx.fillStyle=color;ctx.beginPath();ctx.arc(x,y,radius,0,Math.PI*2,true);ctx.closePath();ctx.fill();}//获得鼠标位置 并转换成棋盘坐标function getMousePos(event) { var e = event || window.event; var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; var scrollY = document.documentElement.scrollTop || document.body.scrollTop; var x = e.pageX || e.clientX + scrollX; var y = e.pageY || e.clientY + scrollY;y = y - 40; x = x - (document.body.scrollWidth - 450)/2;x = Math.floor(x/30);y = Math.floor(y/30); // return { 'x': x, 'y': y }; }function blink(x,y,d){switch(d){case 0:for(i = 0;i<5;i++)//行circle(x*weight+bianx,(y-i)*weight+bianx,10,'#f00');break;case 1:for(i = 0;i<5;i++)//列circle((x-i)*weight+bianx,y*weight+bianx,10,'#f00');break;case 2:for(i = 0;i<5;i++)//左下向右上方向检查circle((x-i)*weight+bianx,(y+i)*weight+bianx,10,'#f00');break;case 3:for(i = 0;i<5;i++)//右下向左上方向检查circle((x-i)*weight+bianx,(y-i)*weight+bianx,10,'#f00');break;default:break;}}
画棋盘,棋子什么的,,
3.button.js
var started = 0;var xianshou = 1;var win_times = [];win_times[0]=0;win_times[1]=0;var rank = 0; //游戏级别var turn = 1;//当前下子的一方var step = 0;//记录下了多少步function first(){//先手选择started = 0;chushihua();var start = document.getElementById("start");start.value = "开 始";var first = document.getElementById("first");if(xianshou == 1){first.value = "人 先 手";xianshou = 2;turn = 2;}else{first.value = "电脑先手";xianshou = 1;turn = 1;}}function start(){if(step > 0){win_times[0]++;}score.innerHTML="电脑胜利:"+win_times[0]+"<br/>人胜利:<br/>"+win_times[1];temp2 = 0;chushihua();started = 1;if(xianshou == 1){//电脑先手chessboard[8][8] = 1;pingfen[8][8][0] = 1;circle(8*weight+8,8*weight+8,14,"#000");}turn = 2;var start = document.getElementById("start");start.value = "重新开始";}function geta(){var ss = document.getElementById("sele");rank = ss.value;started = 0;chushihua();var start = document.getElementById("start");start.value = "开 始";var first = document.getElementById("first");first.value = "电脑先手";xianshou = 1;turn = 1;}function chushihua(){paint_chess();step = 0;for(i = 0;i<15;i++){for(j = 0;j < 15;j++){chessboard[i][j] = 0;for(k = 0;k < 3; k++){pingfen[i][j][k] = 0;}for(k = 0; k < 8;k ++){for(l = 0;l < 5;l++){chess[i][j][k][l] = 0;}//初始化各个记录}}}}每个按键的功能,
4 new.js
/*4 4 4data[i-4][j-4] data[i-4][j] data[i-4][j+4] 3 3 3 2 2 2 111432101234 111 2 2 2 3 3 34 4 4 chess[i][j]//记录棋盘当前样子7016 2543首先是一系列定义:连五:纵、横、斜线同色五子的紧连。930400000 1 1 1 1 0活四:两端都可形成连五的四。442000000 1 1 1 0冲四:仅一端能形成连五的四。活三:指可形成活四的三。休三:指因禁手点无法形成活四的三。眠三:仅能形成冲四的三。四四:又称双四,一子出现两条或以上活四或冲四。三三:又称双活三,一子出现两条或以上活三。长连:纵、横、斜线同色形成超过五子的连线。禁手:黑子禁止下出双活三、双四、长连,下出则判败先五为胜:黑棋五连与禁手同时形成,禁手失效,黑方胜。*/var fen = [];var chessboard = [];//记录棋盘当前样子var chess = []; //记录每个棋子8个方向的情况var pingfen = [];//记录每个空格的权值//0代表空 1 代表黑 2代表白 3 棋盘外var i = 0,j = 0,k = 0,l = 0,x = 0,y = 0;//循环用临时变量 //fen[0] = [10000000,3000000,500000,4000000,3000000,200000];//fen[1] = [10000000,3000000,500000,,4000000,2000000,200000]; fen[0] = [10000000,3000000,500000,1000000,9000000,2000000,200000,1000000]; fen[1] = [18267021440000,41225760000,93040000,210000,867797120000,1958480000,4420000,10000];for(i = 0;i<15;i++){chess[i] = [];for(j = 0;j < 15;j++){chess[i][j] = [];for(k = 0; k < 8;k ++){chess[i][j][k] = [];for(l = 0;l < 5;l++){chess[i][j][k][l] = 0;}}}}for(i = 0;i < 15;i ++){chessboard[i] = [];pingfen[i] = [];for(j = 0;j< 15;j++){chessboard[i][j] = 0;pingfen[i][j] = [];for(k = 0;k < 3; k++){pingfen[i][j][k] = 0;}}} //边界问题for(i=0;i<15;i++)//边界问题的赋值{ chess[0][i][7][0]=3; chess[0][i][0][0]=3; chess[0][i][1][0]=3;//第一行 chess[14][i][3][0]=3; chess[14][i][4][0]=3; chess[14][i][5][0]=3;//第十五行 chess[i][0][7][0]=3; chess[i][0][6][0]=3; chess[i][0][5][0]=3;//第一列chess[i][14][1][0]=3; chess[i][14][2][0]=3; chess[i][14][3][0]=3;//第十五列}function initialize(){//将棋盘信息送给chess[][][][]for( i = 0; i < 15; i++) //0方向检查 for( j = 0; j<15; j++) if( chessboard[i][j] == 0) for( k = 0, x = i, y = j; k<5&&x>0; k++, x--) chess[i][j][0][k] = chessboard[x-1][y];for( i = 0; i < 15; i++) //4 方向检查 for( j = 0; j < 15; j++) if( chessboard[i][j] == 0) for( k = 0, x = i, y = j;k<5&&x<14;k++, x++)chess[i][j][4][k] = chessboard[x+1][y]; for( i = 0; i < 15; i++) // 1 方向检查for( j = 0; j <15;j++) if(chessboard[i][j] == 0) for( k = 0, x = i, y = j; k<5&&x>0&&y<14; k++, x--, y++) chess[i][j][1][k] = chessboard[x-1][y+1]; for( i = 0; i <15; i++) // 5 方向检查for( j=0; j<15; j++) if(chessboard[i][j] == 0) for( k = 0, x = i, y = j; k<5&&x<14&&y>0; k++, x++, y--) chess[i][j][5][k] = chessboard[x+1][y-1]; for( i = 0; i < 15; i++)// 2 方向检查 for( j = 0; j < 15; j++) if( chessboard[i][j] == 0) for( k = 0, x = i, y = j; k<5&&y<14; k++, y++) chess[i][j][2][k] = chessboard[x][y+1]; for( i = 0; i < 15; i++)//6 方向检查for( j = 0; j <15; j++) if( chessboard[i][j] == 0) for( k = 0, x = i, y = j; k<5&&y>0; k++,y--)chess[i][j][6][k] = chessboard[x][y-1]; for(i=0;i<15;i++)// 3 方向检查for(j=0;j<15;j++) if( chessboard[i][j] == 0) for( k = 0, x = i, y = j; k<5&&y<14&&x<14; k++, x++, y++) chess[i][j][3][k] = chessboard[x+1][y+1]; for(i=0;i<15;i++)// 7 方向检查for(j=0;j<15;j++) if(chessboard[i][j] == 0) for( k = 0, x = i, y = j; k<5&&x>0&&y>0; k++, x--, y--) chess[i][j][7][k] = chessboard[x-1][y-1];}function pingfe(){for(i = 0;i < 15;i++)for(j = 0;j< 15;j++){for(k = 1;k < 3; k++){pingfen[i][j][k] = 0;}} var m =0,n = 0;var player1 = 1,player2 = 2;for( i=0;i<15;i++)for( j=0;j<15;j++)if(chessboard[i][j] == 0){for(k=0;k<8;k++){if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player1&&chess[i][j][k][2]==player1&&chess[i][j][k][3]==player1) // 0 0 0 0 1pingfen[i][j][player1] += fen[rank][0];}for(k=0;k<4;k++){ if(chess[i][j][k][0]==player1&&chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player1&&chess[i][j][k+4][2]==player1) // 0 1 0 0 0 pingfen[i][j][player1]+=fen[rank][0];if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player1&&chess[i][j][k][2]==player1&&chess[i][j][k+4][0]==player1) // 0 0 0 1 0pingfen[i][j][player1]+=fen[rank][0]; if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player1&&chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player1) // 0 0 1 0 0 pingfen[i][j][player1]+=fen[rank][0]; } //电脑可以形成成五for(k=0;k<4;k++){if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player1&&chess[i][j][k][2]==player1&&chess[i][j][k][3]==0&&chess[i][j][k+4][0]==0) // 6 0 0 0 1 6pingfen[i][j][player1]+=fen[rank][1];if(chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player1&&chess[i][j][k+4][2]==player1&&chess[i][j][k+4][3]==0&&chess[i][j][k][0]==0)//6 1 0 0 0 6pingfen[i][j][player1]+=fen[rank][1]; if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player1&&chess[i][j][k][2]==0&&chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==0) // 6 0 0 1 0 6pingfen[i][j][player1]+=fen[rank][1];if(chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player1&&chess[i][j][k+4][2]==0&&chess[i][j][k][0]==player1&&chess[i][j][k][1]==0) //6 0 1 0 0 6 pingfen[i][j][player1]+=fen[rank][1]; }//电脑可以形成活四 for(k=0;k<4;k++){ if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player1&&chess[i][j][k][2]==player1&&((chess[i][j][k][3]==player2&&chess[i][j][k+4][0]==0)||(chess[i][j][k][3]==0&&chess[i][j][k+4][0]==player2))){// 2 0 0 0 1 6 / 6 0 0 0 1 2 pingfen[i][j][player1]+=5000; n++; } if(chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player1&&chess[i][j][k+4][2]==player1&&((chess[i][j][k+4][3]==player2&&chess[i][j][k][0]==0)||(chess[i][j][k+4][3]==0&&chess[i][j][k][0]==player2))){// 6 1 0 0 0 2 / 2 1 0 0 0 6 pingfen[i][j][player1]+=5000; n++; } if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player1&&chess[i][j][k+4][0]==player1&&((chess[i][j][k][3]==player2&&chess[i][j][k+4][1]==0)||(chess[i][j][k][3]==0&&chess[i][j][k+4][1]==player2))){ // 2 0 0 1 0 6 / 6 0 0 1 0 2 pingfen[i][j][player1]+=5000; n++; } if(chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player1&&chess[i][j][k][0]==player1&&(chess[i][j][k+4][3]==player2&&chess[i][j][k][1]==0||chess[i][j][k+4][3]==0&&chess[i][j][k][1]==player2)){// 6 0 1 0 0 2 / 2 0 1 0 0 6 pingfen[i][j][player1]+=5000; n++; } }//电脑可以成冲四for(k=0;k<4;k++){ if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player1&&chess[i][j][k][2]==0&&chess[i][j][k+4][0]==0){// 6 0 0 1 6 pingfen[i][j][player1]+=fen[rank][3]; m++; } if(chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player1&&chess[i][j][k+4][2]==0&&chess[i][j][k][0]==0){ // 6 1 0 0 6 pingfen[i][j][player1]+=fen[rank][3]; m++; } if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==0&&chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==0){// 6 0 1 0 6 pingfen[i][j][player1]+=fen[rank][3]; m++; } }//电脑可以成双活三if(m>1){pingfen[i][j][player1]+=fen[rank][2];}//电脑可以成三三if(m>0&&n>0){pingfen[i][j][player1]+=fen[rank][2];}//电脑可以成冲四双活三for(k=0;k<4;k++){ if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player1&&((chess[i][j][k][2]==player2&&chess[i][j][k+4][0]==0)||(chess[i][j][k][2]==0&&chess[i][j][k+4][0]==player2)))// 2 0 0 1 6 / 6 0 0 1 2 pingfen[i][j][player1]+=500; if(chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player1&&((chess[i][j][k+4][2]==player2&&chess[i][j][k][0]==0)||(chess[i][j][k+4][2]==0&&chess[i][j][k][0]==player2))) // 6 1 0 0 2 / 2 1 0 0 6 pingfen[i][j][player1]+=500; if(chess[i][j][k][0]==player1&&chess[i][j][k+4][0]==player1&&((chess[i][j][k+4][1]==0&&chess[i][j][k][1]==player2)||(chess[i][j][k+4][1]==player2&&chess[i][j][k][1]==0))) // 2 0 1 0 6 / 6 0 1 0 2 pingfen[i][j][player1]+=500; }//电脑可以成单活三 for(k=0;k<4;k++){ if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player1&&chess[i][j][k][2]==player1&&chess[i][j][k][3]==player2&&chess[i][j][k+4][0]==player2) // 2 0 0 0 1 2 pingfen[i][j][player1]+=10; if(chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player1&&chess[i][j][k+4][2]==player1&&chess[i][j][k+4][3]==player2&&chess[i][j][k][0]==player2) // 2 1 0 0 0 2pingfen[i][j][player1]+=10; if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player1&&chess[i][j][k+4][0]==player1&&chess[i][j][k][2]==player2&&chess[i][j][k+4][1]==player2) // 2 0 0 1 0 2pingfen[i][j][player1]+=10; if(chess[i][j][k][0]==player1&&chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player1&&chess[i][j][k+4][2]==player2&&chess[i][j][k][1]==player2) // 2 0 1 0 0 2 pingfen[i][j][player1]+=10; }//电脑可以形成死四 for(k=0;k<4;k++){ if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player1&&chess[i][j][k][2]==player2&&chess[i][j][k+4][0]==player2) // 2 0 0 1 2 pingfen[i][j][player1]+=5; if(chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player1&&chess[i][j][k+4][2]==player2&&chess[i][j][k][0]==player2) // 2 1 0 0 2pingfen[i][j][player1]+=5; if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player2&&chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player2) // 2 0 1 0 2 pingfen[i][j][player1]+=5; }//电脑成死三 for(k=0;k<4;k++){ if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==0&&chess[i][j][k+4][0]==0)// 6 0 1 6 pingfen[i][j][player1]+=100; if(chess[i][j][k][0]==0&&chess[i][j][k+4][1]==0&&chess[i][j][k+4][0]==player1) // 6 1 0 6 pingfen[i][j][player1]+=100; }//电脑成双活二for(k=0;k<4;k++){ if(chess[i][j][k][0]==player1&&((chess[i][j][k][1]==player2&&chess[i][j][k+4][0]==0)||(chess[i][j][k][1]==0&&chess[i][j][k+4][0]==player2))) // 2 0 1 6/ 6 0 1 2 pingfen[i][j][player1]+=50; if(chess[i][j][k+4][0]==player1&&((chess[i][j][k+4][1]==player2&&chess[i][j][k][0]==0)||(chess[i][j][k+4][1]==0&&chess[i][j][k][0]==player2)))// 6 1 0 2 / 2 1 0 6 pingfen[i][j][player1]+=50; }//电脑成活二 for(k=0;k<4;k++){ if(chess[i][j][k][0]==player1&&chess[i][j][k][1]==player2&&chess[i][j][k+4][0]==player2) // 2 0 1 2 pingfen[i][j][player1]+=3; if(chess[i][j][k+4][0]==player1&&chess[i][j][k+4][1]==player2&&chess[i][j][k][0]==player2) pingfen[i][j][player1]+=3; //2 1 0 2}//电脑成死二}m = 0;n = 0;///////////////////////////////////////for( i=0;i<15;i++)for( j=0;j<15;j++)if(chessboard[i][j] == 0){for(k=0;k<8;k++){if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player2&&chess[i][j][k][2]==player2&&chess[i][j][k][3]==player2) pingfen[i][j][player2] +=fen[rank][4];}for(k=0;k<4;k++){ if(chess[i][j][k][0]==player2&&chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==player2&&chess[i][j][k+4][2]==player2) pingfen[i][j][player2]+=fen[rank][4];if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player2&&chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==player2) pingfen[i][j][player2]+=fen[rank][4]; if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player2&&chess[i][j][k][2]==player2&&chess[i][j][k+4][0]==player2) pingfen[i][j][player2]+=fen[rank][4]; } //人可以形成成五for(k=0;k<4;k++){if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player2&&chess[i][j][k][2]==player2&&chess[i][j][k][3]==0&&chess[i][j][k+4][0]==0) pingfen[i][j][player2]+=fen[rank][5];if(chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==player2&&chess[i][j][k+4][2]==player2&&chess[i][j][k+4][3]==0&&chess[i][j][k][0]==0)pingfen[i][j][player2]+=fen[rank][5]; if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player2&&chess[i][j][k][2]==0&&chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==0) pingfen[i][j][player2]+=fen[rank][5];if(chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==player2&&chess[i][j][k+4][2]==0&&chess[i][j][k][0]==player2&&chess[i][j][k][1]==0) pingfen[i][j][player2]+=fen[rank][5]; }//人可以形成活四 for(k=0;k<4;k++){ if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player2&&chess[i][j][k][2]==player2&&((chess[i][j][k][3]==player1&&chess[i][j][k+4][0]==0)||(chess[i][j][k][3]==0&&chess[i][j][k+4][0]==player1))){pingfen[i][j][player2]+=5000; n++; } if(chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==player2&&chess[i][j][k+4][2]==player2&&((chess[i][j][k+4][3]==player1&&chess[i][j][k][0]==0)||(chess[i][j][k+4][3]==0&&chess[i][j][k][0]==player1))) { pingfen[i][j][player2]+=5000; n++; } if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player2&&chess[i][j][k+4][0]==player2&&((chess[i][j][k][3]==player1&&chess[i][j][k+4][1]==0)||(chess[i][j][k][3]==0&&chess[i][j][k+4][1]==player1))) { pingfen[i][j][player2]+=5000; n++; } if(chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==player2&&chess[i][j][k][0]==player2&&(chess[i][j][k+4][3]==player1&&chess[i][j][k][1]==0||chess[i][j][k+4][3]==0&&chess[i][j][k][1]==player1)) { pingfen[i][j][player2]+=5000; n++; } }//人可以成冲四 for(k=0;k<4;k++){ //j=0; if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player2&&chess[i][j][k][2]==0&&chess[i][j][k+4][0]==0) { pingfen[i][j][player2]+=fen[rank][7]; m++; } if(chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==player2&&chess[i][j][k+4][2]==0&&chess[i][j][k][0]==0) { pingfen[i][j][player2]+=fen[rank][7]; m++; } if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==0&&chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==0) { pingfen[i][j][player2]+=fen[rank][7]; m++; } }//人可以成双活三if(m>1){pingfen[i][j][player2]+=fen[rank][6];}//人可以成三三if(m>0&&n>0){pingfen[i][j][player2]+=fen[rank][6];}//人d可以成冲四双活三for(k=0;k<4;k++){ if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player2&&(chess[i][j][k][2]==player1&&chess[i][j][k+4][0]==0||chess[i][j][k][2]==0&&chess[i][j][k+4][0]==player1)) pingfen[i][j][player2]+=500; if(chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==player2&&(chess[i][j][k+4][2]==player1&&chess[i][j][k][0]==0||chess[i][j][k+4][2]==0&&chess[i][j][k][0]==player1)) pingfen[i][j][player2]+=500; if(chess[i][j][k][0]==player2&&chess[i][j][k+4][0]==player2&&(chess[i][j][k+4][1]==0&&chess[i][j][k][1]==player1||chess[i][j][k+4][1]==player1&&chess[i][j][k][1]==0)) pingfen[i][j][player2]+=500; }//人可以成单活三for(k=0;k<4;k++){ if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player2&&chess[i][j][k][2]==player2&&chess[i][j][k][3]==player1&&chess[i][j][k+4][0]==player1) pingfen[i][j][player2]+=10; if(chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==player2&&chess[i][j][k+4][2]==player2&&chess[i][j][k+4][3]==player1&&chess[i][j][k][0]==player1) pingfen[i][j][player2]+=10; if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player2&&chess[i][j][k+4][0]==player2&&chess[i][j][k][2]==player1&&chess[i][j][k+4][1]==player1) pingfen[i][j][player2]+=10; if(chess[i][j][k][0]==player2&&chess[i][j][k+4][1]==player2&&chess[i][j][k+4][0]==player2&&chess[i][j][k+4][2]==player1&&chess[i][j][k][1]==player1) pingfen[i][j][player2]+=10; }//人可以形成死四 for(k=0;k<4;k++){ if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player2&&chess[i][j][k][2]==player1&&chess[i][j][k+4][0]==player1) pingfen[i][j][player2]+=5; if(chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==player2&&chess[i][j][k+4][2]==player1&&chess[i][j][k][0]==player1) pingfen[i][j][player2]+=5; if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player1&&chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==player1) pingfen[i][j][player2]+=5; }//人成死三 for(k=0;k<4;k++){ if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==0&&chess[i][j][k+4][0]==0) pingfen[i][j][player2]+=100; if(chess[i][j][k][0]==0&&chess[i][j][k+4][1]==0&&chess[i][j][k+4][0]==player2) pingfen[i][j][player2]+=100; }//人成双活二for(k=0;k<4;k++){ if(chess[i][j][k][0]==player2&&(chess[i][j][k][1]==player1&&chess[i][j][k+4][0]==0||chess[i][j][k][1]==0&&chess[i][j][k+4][0]==player1)) pingfen[i][j][player2]+=30; if(chess[i][j][k+4][0]==player2&&(chess[i][j][k+4][1]==player1&&chess[i][j][k][0]==0||chess[i][j][k+4][1]==0&&chess[i][j][k][0]==player1)) pingfen[i][j][player2]+=30; }//人成活二 for(k=0;k<4;k++){ if(chess[i][j][k][0]==player2&&chess[i][j][k][1]==player1&&chess[i][j][k+4][0]==player1) pingfen[i][j][player2]+=3; if(chess[i][j][k+4][0]==player2&&chess[i][j][k+4][1]==player1&&chess[i][j][k][0]==player1) pingfen[i][j][player2]+=3; }//人成死二}} function add_chessman(ad,chang){chessboard[ad.x][ad.y] = chang;pingfen[ad.x][ad.y][0] = chang;}function check(){for(i = 0;i < 15;i++){//逐行检查//换行清空 k = 0;l = 0;//k 表示黑棋连续个数 l表示白棋for(j = 0;j < 15;j++){if(chessboard[i][j] == 0){k = 0;l = 0;}else if(chessboard[i][j] == 1){l = 0;k++;}else{k = 0;l++;}if(k == 5){blink(i,j,0);return 1;}if(l == 5){blink(i,j,0);return 2;}}}for(j = 0;j < 15;j++){//逐列检查 k = 0;l = 0;//k 表示黑棋连续个数 l表示白棋for(i = 0;i < 15;i++){if(chessboard[i][j] == 0){k = 0;l = 0;}else if(chessboard[i][j] == 1){l = 0;k++;}else{k = 0;l++;}if(k == 5){blink(i,j,1);return 1;}if(l == 5){blink(i,j,1);return 2;}}}for(i = 4;i<15;i++){//右下向右上方向检查k = 0;l = 0;var s = 0;for(j = 0;j<11;j++){if(chessboard[i][j] == 0){k = 0;l = 0;}else if(chessboard[i][j] == 1){l = 0;k++;for(s = 1;s < 5; s++){if(chessboard[i-s][j+s] == 1){k++;}else{k = 0;break;}}if(k == 5){blink(i,j,2);return 1;}}else{k = 0;l++;for(s = 1;s < 5; s++){if(chessboard[i-s][j+s] == 2){l++;}else{l = 0;break;}}if( l == 5){blink(i,j,2);return 2;}}}}for(i = 4;i<15;i++){//右下向左上方向检查k = 0;l = 0;var s = 0;for(j = 4;j<15;j++){if(chessboard[i][j] == 0){k = 0;l = 0;}else if(chessboard[i][j] == 1){l=0;k++;for(s = 1;s < 5; s++){if(chessboard[i-s][j-s] == 1){k++;}else{k = 0;break;}}if(k == 5){blink(i,j,3);return 1;}}else{k=0;l++;for(s = 1;s < 5; s++){if(chessboard[i-s][j-s] == 2){l++;}else{l = 0;break;}}if(l == 5){blink(i,j,3);return 2;}}}}return 0;}function sosuo(tu){var max = [];for(i = 0;i < 3;i++){//记录电脑评分最大值位置max[i] = 0;} var max2 = [];for(i = 0;i < 3;i++){max2[i] = 0;} for(i=0;i<15;i++)for(j=0;j<15;j++)if(pingfen[i][j][0] == 0 && max[0] < pingfen[i][j][1]){max[1] = i;max[2] = j;max[0] = pingfen[i][j][1];} for(i=0;i<15;i++)for(j=0;j<15;j++)if(pingfen[i][j][0] == 0 && max2[0] < pingfen[i][j][2]){max2[1] = i;max2[2] = j;max2[0] = pingfen[i][j][2];} if(tu == 1){if(max[0] >= max2[0]){return {"x":max[1],"y":max[2]};}else{return {"x":max2[1],"y":max2[2]};}}else{if(max2[0] > max[0]){return {"x":max2[1],"y":max2[2]};}else{return {"x":max[1],"y":max[2]};}}}主要的处理函数,高级与初级也就,对各种情况评分不同而已,并没有像下搜索什么的
5.index.css
#myCanvas{width:450px;height:450px;margin: 40px auto;display:block;}input{width:100px;height:30px;font-size:20px;}#score{width:100px;height:100px;color:red;background:white;top:20%;right:20%;position:absolute;text-align:center;font-size:20px;}#first{top:42%;right:20%;position:absolute;}#start{top:50%;right:20%;position:absolute;}#sele{top:60%;right:20%;width:100px;height:30px;font-size:10px;position:absolute;}
0 0
- html css js五子棋
- js五子棋
- js 五子棋
- html,css.js
- html+css+js+struts
- js html css
- HTML,JS,CSS教程
- html css js 进度条
- JS, HTML, CSS 大全
- web001-html,css,js
- HTML-JS-CSS规范
- html js & css 压缩
- html css js
- html+css+js基础知识
- html css js
- HTML、CSS、JS
- HTML JS CSS 基础知识
- css html js
- 伪分布式Hadoop安装
- Eclipse搜索文件名,以及搜索文件中特定的内容
- hdoj 2054 A == B ?【大数判断题】
- Eclipse: Eclipse Color Theme插件导入教程及”文本编辑区“字体、Eclipse-UI-Theme(用户界面主题)的调整方法
- Spark为啥比hadoop速度快?
- html css js五子棋
- C#委托 Delegate
- Akka书箱推荐
- Java并发小结,先验条件、后验条件等概念
- UIView
- Sort Color
- 问题解决:SqlParameterCollection只接受非空的SqlParameter类型对象,不接受SqlParameter[]对象
- UIPageControl
- sort自定义cmp函数