var?me?=?true;
var?over=false;
chessBorad=[];
for?(var?i?=?0;?i?<?15;?i++)?{
????chessBorad[i]?=?[];
????for?(var?j?=?0;?j?<?15;?j++)?{
????????chessBorad[i][j]?=?0;
????}
}
var?wins=[];
var?myWin=[];
var?computerWin=[];
for?(var?i?=?0;?i?<?15;?i++)?{
????wins[i]?=?[];
????for?(var?j?=?0;?j?<?15;?j++)?{
????????wins[i][j]?=?[];
????}
}
var?count=0;
for(i=0;i<15;i++){
?for(j=0;j<11;j++){
??for(k=0;k<5;k++){
???wins[i][j+k][count]=true;
??}
??count++;
?}
}
for(i=0;i<15;i++){
?for(j=0;j<11;j++){
??for(k=0;k<5;k++){
???wins[j+k][i][count]=true;
??}
??count++;
?}
}
for(i=0;i<11;i++){
?for(j=0;j<11;j++){
??for(k=0;k<5;k++){
???wins[i+k][j+k][count]=true;
??}
??count++;
?}
}
for(i=0;i<11;i++){
?for(j=14;j>3;j--){
??for(k=0;k<5;k++){
???wins[i+k][j-k][count]=true;
??}
??count++;
?}
}
console.log(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="logo.png";
?logo.onload=function(){
??context.drawImage(logo,105,105,240,240);
??drawChessBorad();
?}
?var?drawChessBorad=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?oneStep=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+j*30-2,13,15+i*30+2,15+j*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){
????????oneStep(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){
?????window.alert("你贏了");
?????over=true;
????}
???}
??}
??if(!over){
????me=!me;
???computerAI();
??}
????}
}
var?computerAI=function(){
?var?myScore=[];
?var?computerScore=[];
?var?max=0;
?var?u=0,v=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(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;
?????}else?if(computerWin[k]==1){
???????myScore[i][j]+=220;
??????}else?if(computerWin[k]==2){
???????myScore[i][j]+=420;
?????}else?if(computerWin[k]==3){
??????myScore[i][j]+=2100;
?????}else?if(computer[k]==4){
??????myScore[i][j]+=20000;
?????}
????}
???}
???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;
????}
???}
??}
?}
??}?
??oneStep(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){
?????window.alert("你輸了");
?????over=true;
????}
???}
??}
??if(!over){
????me=!me;
??}
}
