亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

求助,哪位大神能看出問題啊,我點擊第一下都不出子

var?chessBoard?=[];
for(var?i?=?0;i<15;i++){
	chessBoard[i]?=?[];
	for(var?j?=?0;j<15;j++){
		chessBoard[i][j]?=?0;
	}
}

var?me?=?true;
var?myWin?=?[];
var?computerWin?=?[];
var?over?=?false;

var?chess?=?document.getElementById('chess');
var?context?=?chess.getContext('2d');//獲取畫筆

context.strokeStyle?="#bfbfbf";//畫筆顏色設置
var?logo?=?new?Image();
logo.src="images/logo.png";
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?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,j*30-2,0);
	if(me){
		gradient.addColorStop(0,"#0A0A0A");
		gradient.addColorStop(1,"#636376");
	}else{
		gradient.addColorStop(0,"#D1D1D1");
		gradient.addColorStop(1,"#F9F9F9");
	}
	context.fillStyle=gradient;
	context.fill();
}

chess.onclick?=?function(e){
	if?(over)?{return;}
	if(!me){?console.log(!me);return;}
	var?x?=e.offsetX;
	var?y?=e.offsetY;
	var?i?=?Math.floor(x/30);
	var?j?=?Math.floor(y/30);
	if(chessBoard[i][j]==0){
		oneStep(i,j,me);
		chessBoard[i][j]=1;
		for?(var?k?=?0;?k?<?count;?k++)?{
		if(wins[i][j][k]){
			myWin[k]++;
			computerWin[k]=100;//表明這不可能贏
			if(myWin[k]?==?5){
				alert("you?win");
				console.log("you?win");
				over?=?true;
				console.log(k)
			}
		}
	}
		if(!over){
			me?=!me;
			console.log(me);
			computerAI();?	
		}
	}
}
//贏法數組
//1:定義一個空的三維數組
var?wins?=?[];
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?<?11;?i++)?{
		for?(var?j?=?0;?j?<?15?;?j++)?{
			for?(var?k?=?0;?k?<5?;?k++)?{
				wins[i+k][j][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?computerAI?=?function(){
	console.log("電腦下棋中?......");
	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?(chessBoard[i][j]==0)?{
				for?(var?k?=?0;?i?<?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]?+=?2400;
						}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;
					}
				}
			}
		}
	}
	oneStep(u,v,false);
	chessBoard[u][v]?=?2;
	for?(var?k?=?0;?k?<?count;?k++)?{
		if(wins[u][v][k]){
			computerWin[k]++;
			myWin[k]=100;//表明這不可能贏
			if(computerWin[k]?==?5){
				alert("computer?win");
				console.log("computer?win");
				over?=?true;
				console.log(k)
			}
		}
	}
	if(!over){
		me?=!me;
	}
}


正在回答

3 回答

123怎么錯了?沒看明白,求解?。?/p>


0 回復 有任何疑惑可以回復我~

我差我絕對是智障。。。。這都能錯

0 回復 有任何疑惑可以回復我~

123

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

求助,哪位大神能看出問題啊,我點擊第一下都不出子

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號