第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

所有源碼,可以正常運(yùn)行,應(yīng)該還有很多可以改進(jìn)的地方

(function(){
	'use?strict';
	let?me??????????=?true;
	let?chessBoard??=?[];
	let?wins????????=?[];
	let?myWin???????=?[];
	let?computerWin?=?[];
	let?over????????=?false;
	let?chess???????=?document.querySelector('#chess');
	let?context?????=?chess.getContext('2d');
	let?count???????=?0;

	//?畫棋盤
	drawChessBoard();
	//?所有落子數(shù)據(jù)歸零
	clearBoard();
	//?獲得所有贏的情況
	getWinsList();
	//?初始化雙方得分
	initScore();


chess.onclick?=?function(e)?{
	if?(over?||?!me)?{
		return;
	}

	let?x?=?e.offsetX;
	let?y?=?e.offsetY;
	let?i?=?Math.floor(x?/?40);
	let?j?=?Math.floor(y?/?40);
	if?(chessBoard[i][j]?===?0)?{
		drawChess(i,?j,?me);
		chessBoard[i][j]?=?1;

		for?(let?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;
			setTimeout(computerAI,?1000);
		}
	}
}

function?computerAI()?{
	let?myScore?=?[];
	let?computerScore?=?[];
	let?max?=?0;
	let?u?=?0;
	let?v?=?0;
	//?初始化
	for?(let?i?=?0;?i?<?15;?i++)?{
		myScore[i]?=?[];
		computerScore[i]?=?[];
		for?(let?j?=?0;?j?<?15;?j++)?{
			myScore[i][j]?=?0;
			computerScore[i][j]?=?0;
		}
	}
	//?
	for?(let?i?=?0;?i?<?15;?i++)?{
		for?(let?j?=?0;?j?<?15;?j++)?{
			if?(chessBoard[i][j]?==?0)?{
				for(let?k=0;?k<count;?k++)?{
					if?(wins[i][j][k])?{
						switch(myWin[k])
						{
							case?1:?myScore[i][j]?+=?200;
								break;
							case?2:?myScore[i][j]?+=?400;
								break;
							case?3:?myScore[i][j]?+=?2000;
								break;
							case?4:?myScore[i][j]?+=?10000;
								break;
						}
						switch(computerWin[k])
						{
							case?1:?computerScore[i][j]?+=?220;
								break;
							case?2:?computerScore[i][j]?+=?440;
								break;
							case?3:?computerScore[i][j]?+=?2200;
								break;
							case?4:?computerScore[i][j]?+=?20000;
								break;
						}

						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;
							}
						}
					}
				}
			}
		}
	}
	drawChess(u,?v,?false);
	chessBoard[u][v]?=?2;
	//?2:28
	for?(let?k?=?0;?k?<?count;?k++)?{
		if?(wins[u][v][k])?{
			computerWin[k]++;
			myWin[k]?=?6;
			if?(computerWin[k]?==?5)?{
				window.alert("計算機(jī)贏了!");
				over?=?true;
			}
		}
	}
	if?(!over)?{
		me?=?!me;
	}
}

//?清空棋盤落子數(shù)據(jù)
function?clearBoard()?{
	for?(let?i?=?0;?i?<?15;?i++)?{
		chessBoard[i]?=?[];
		for?(var?j?=?0;?j?<?15;?j++)?{
			chessBoard[i][j]?=?0;
		}
	}
}
//?畫棋盤線
function?drawChessBoard()?{
	context.strokeStyle?=?'#bfbfbf';
	for?(let?i?=?0;?i?<?15;?i++)?{
		//?橫線
		context.moveTo(20,?20?+?i*40);
		context.lineTo(580,?20?+?i*40);
		context.stroke();
		//?豎線
		context.moveTo(20?+?i*40,?20);
		context.lineTo(20?+?i*40,?580);
		context.stroke();
	}
}
//?畫棋子
function?drawChess(i,?j,?me)?{
	//?i,?j?是棋子在棋盤上的索引
	//?me?黑棋或白棋
	context.beginPath();
	context.arc(20+i*40,?20+j*40,?16,?0,?2*Math.PI);
	context.closePath();
	let?gradient?=?context.createRadialGradient(20+i*40+4,?20+j*40-4,?10,?20+i*40+6,?20+j*40-6,?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();
}

function?getWinsList()?{
	for?(let?i?=?0;?i?<?15;?i++)?{
		wins[i]?=?[];
		for?(let?j?=?0;?j?<?15;?j++)?{
			wins[i][j]?=?[];
		}
	}
	//?
	for?(let?i?=?0;?i?<?15;?i++)?{
		for?(let?j?=?0;?j?<?11;?j++)?{
			for?(let?k?=?0;?k?<?5;?k++)?{
				wins[i][j+k][count]?=?true;
			}
			count++;
		}
	}
	//?豎線
	for?(let?i?=?0;?i?<?15;?i++)?{
		for?(let?j?=?0;?j?<?11;?j++)?{
			for?(let?k?=?0;?k?<?5;?k++)?{
				wins[j+k][i][count]?=?true;
			}
			count++;
		}
	}
	//?斜線
	for?(let?i?=?0;?i?<?11;?i++)?{
		for?(let?j?=?0;?j?<?11;?j++)?{
			for?(let?k?=?0;?k?<?5;?k++)?{
				wins[i+k][j+k][count]?=?true;
			}
			count++;
		}
	}
	//?反斜線
	for?(let?i?=?0;?i?<?11;?i++)?{
		for?(let?j?=?14;?j?>?3;?j--)?{
			for?(let?k?=?0;?k?<?5;?k++)?{
				wins[i+k][j-k][count]?=?true;
			}
			count++;
		}
	}
}

function?initScore()?{
	for?(let?i?=?0;?i?<?count;?i++)?{
		myWin[i]?=?0;
		computerWin[i]?=?0;
	}
}


//?let?logo?=?new?Image();
//?logo.src?=?"./images/IMG_3917.png";
//?logo.onload?=?function()?{
//?	//?畫logo
//?	//?context.drawImage(logo,?10,?10,?580,?580);
//?}


})();


正在回答

1 回答

97-106行代碼然道不是該寫到?for(let?k=0;?k<count;?k++) ?循環(huán)外面嗎?雖然結(jié)果一樣但你這樣應(yīng)該更耗費(fèi)cup資源吧

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

所有源碼,可以正常運(yùn)行,應(yīng)該還有很多可以改進(jìn)的地方

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號