为了账号安全,请及时绑定邮箱和手机立即绑定

正在回答

1 回答

这代码两不多照着写。没问题的。

/**

 * 

 */

var me = true;

var chessBorad = [];

var over = false;

//赢法数组

var wins = [];

//赢法统计数组

var myWin = [];

var computerWin = [];


for(var i = 0;i < 15;i++){

chessBorad[i] =[];

for(var j = 0;j < 15;j++){

chessBorad[i][j] =0;

}

}


//赢法数组初始化

for(var i = 0;i < 15;i++){

wins[i] =[];

for(var j = 0;j < 15;j++){

wins[i][j] =[];

}

}


var count = 0;

for(var i = 0;i < 15;i++){

for(var j = 0;j < 11;j++){

for(var k = 0;k < 5;k++){

wins[i][j+k][count]=true;

}

count++;

}

}


for(var i = 0;i < 15;i++){

for(var j = 0;j < 11;j++){

for(var k = 0;k < 5;k++){

wins[j+k][i][count]=true;

}

count++;

}

}


for(var i = 0;i < 11;i++){

for(var j = 0;j < 11;j++){

for(var k = 0;k < 5;k++){

wins[i+k][j+k][count]=true;

}

count++;

}

}


for(var i = 0;i < 11;i++){

for(var j = 14;j > 3;j--){

for(var k = 0;k < 5;k++){

wins[i+k][j-k][count]=true;

}

count++;

}

}


for(var i = 0;i<count ;i++){

myWin[i] = 0;

computerWin[i] = 0;

}

var chess = document.getElementById('chess');

var context = chess.getContext('2d');

context.strokeStyle = "#BFBFBF";

var logo = new Image();

logo.src="images/8.jpg";

logo.onload = function(){

context.drawImage(logo,0,0,450,450);

drawChessBoard();

}

var drawChessBoard=function(){

for(var i=0;i<15;i++){

context.moveTo(15+i*30,15);

context.lineTo(15+i*30,435);

context.stroke();

context.moveTo(15,15+i*30);

context.lineTo(435,15+i*30);

context.stroke();

}

}

var onStep = function(i,j,me){

context.beginPath();

context.arc(15 + i * 30,15 + j * 30, 13, 0, 2 * Math.PI);

context.closePath();

var gradient = context.createRadialGradient(15+i*30+2,15+i*30-2,13,15+i*30+2,15+i*30-2,0);

if(me){

gradient.addColorStop(0,"#0A0A0A");

gradient.addColorStop(1,"#636766");

}else{

gradient.addColorStop(0,"#D1D1D1");

gradient.addColorStop(1,"#F9F9F9");

}

context.fillStyle = gradient;

context.fill();

}

chess.onclick = function(e){

if(over){

return;

}

if(!me){

return;

}

var x = e.offsetX;

var y = e.offsetY;

var i = Math.floor(x / 30);

var j = Math.floor(y / 30);

if(chessBorad[i][j] == 0){

onStep(i,j,me);

chessBorad[i][j]=1;

for(var k=0;k<count;k++){

if(wins[i][j][k]){

myWin[k]++;

computerWin[k]=6;

if(myWin[k]==5){

alert("你赢了");

over = true;

}

}

}

if(!over){

me = !me;

computer();

}

}

}



var computer = function(){

var myScore = [];

var computerScore = [];

var u =0;

var v = 0;

var max = 0;

for(var i=0;i<15;i++){

myScore[i]=[];

computerScore[i]=[];

for(var j=0;j<15;j++){

myScore[i][j]=0;

computerScore[i][j]=0;

}

}

for(var i=0;i<15;i++){

for(var j=0;j<15;j++){

if(chessBorad[i][j]==0){

for(var k=0;k<count;k++){

if(wins[i][j][k]){

if(myWin[k]==1){

myScore[i][j]+=200;

}else if(myWin[k]==2){

myScore[i][j]+=400;

}else if(myWin[k]==3){

myScore[i][j]+=2000;

}else if(myWin[k]==4){

myScore[i][j]+=10000;

}

if(computerWin[k]==1){

computerScore[i][j]+=220;

}else if(computerWin[k]==2){

computerScore[i][j]+=420;

}else if(computerWin[k]==3){

computerScore[i][j]+=2100;

}else if(computerWin[k]==4){

computerScore[i][j]+=20000;

}

}

}

if(myScore[i][j]>max){

max = myScore[i][j];

u = i;

v = j;

}else if(myScore[i][j]==max){

if(computerScore[i][j]>computerScore[u][v]){

u = i;

v = j;

}

}

if(computerScore[i][j]>max){

max = computerScore[i][j];

u = i;

v = j;

}else if(computerScore[i][j]==max){

if(myScore[i][j]>myScore[u][v]){

u = i;

v = j;

}

}

}

}

}

onStep(u,v,false);

chessBorad[u][v]=2;

for(var k=0;k<count;k++){

if(wins[u][v][k]){

computerWin[k]++;

myWin[k]=6;

if(computerWin[k]==5){

alert("你输了");

over = true;

}

}

}

if(!over){

me = !me;

}

};


0 回复 有任何疑惑可以回复我~
#1

该种树啦 提问者

非常感谢!
2018-03-26 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

那里有源码

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信