¡¡¡¡´¿JSÎå×ӯ壍¸÷ä¯ÀÀÆ÷¼æÈÝ£©
¡¡¡¡Ð§¹ûͼ£º
¡¡¡¡´úÂëÏÂÔØ
¡¡¡¡HTML´úÂë
¡¡¡¡
¡¡¡¡<!DOCTYPE html>
¡¡¡¡<html>
¡¡¡¡<head>
¡¡¡¡<meta http-equiv="Content-Type" content="text/html;">
¡¡¡¡<title>Îå×ÓÆå</title>
¡¡¡¡<link rel="stylesheet" type="text/css" href="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/reset.css">
¡¡¡¡<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/CookieHandle.js"></script>
¡¡¡¡<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/jquery-1.7.2.js"></script>
¡¡¡¡<style>
¡¡¡¡.wrapper {
¡¡¡¡width: 600px;
¡¡¡¡position: relative;
¡¡¡¡}
¡¡¡¡/* ÆåÅÌ */
¡¡¡¡div.chessboard {
¡¡¡¡margin: 30px 0 0 50px;
¡¡¡¡width: 542px;
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/chessboard.png) no-repeat 14px 14px rgb(250, 250, 250);
¡¡¡¡overflow: hidden;
¡¡¡¡box-shadow: 2px 2px 8px #888;
¡¡¡¡-webkit-box-shadow: 2px 2px 8px #888;
¡¡¡¡-moz-box-shadow: 2px 2px 8px #888;
¡¡¡¡}
¡¡¡¡div.chessboard div {
¡¡¡¡float: left;
¡¡¡¡width: 36px;
¡¡¡¡height: 36px;
¡¡¡¡border-top: 0px solid #ccc;
¡¡¡¡border-left: 0px solid #ccc;
¡¡¡¡border-right: 0;
¡¡¡¡border-bottom: 0;
¡¡¡¡cursor: pointer;
¡¡¡¡}
¡¡¡¡/* Æå×Ó */
¡¡¡¡div.chessboard div.black {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/black.png) no-repeat 4px 4px;
¡¡¡¡}
¡¡¡¡div.chessboard div.white {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/white.png) no-repeat 4px 4px;
¡¡¡¡}
¡¡¡¡div.chessboard div.hover {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover.png) no-repeat 1px 1px;
¡¡¡¡}
¡¡¡¡div.chessboard div.hover-up {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_up.png) no-repeat 1px 1px;
¡¡¡¡}
¡¡¡¡div.chessboard div.hover-down {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_down.png) no-repeat 1px 1px;
¡¡¡¡}
¡¡¡¡div.chessboard div.hover-up-left {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_up_left.png) no-repeat 1px 1px;
¡¡¡¡}
¡¡¡¡div.chessboard div.hover-up-right {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_up_right.png) no-repeat 1px 1px;
¡¡¡¡}
¡¡¡¡div.chessboard div.hover-left {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_left.png) no-repeat 1px 1px;
¡¡¡¡}
¡¡¡¡div.chessboard div.hover-right {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_right.png) no-repeat 1px 1px;
¡¡¡¡}
¡¡¡¡div.chessboard div.hover-down-left {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_down_left.png) no-repeat 1px 1px;
¡¡¡¡}
¡¡¡¡div.chessboard div.hover-down-right {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_down_right.png) no-repeat 1px 1px;
¡¡¡¡}
¡¡¡¡div.chessboard div.white-last {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/white_last.png) no-repeat 4px 4px;
¡¡¡¡}
¡¡¡¡div.chessboard div.black-last {
¡¡¡¡background: url(http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/black_last.png) no-repeat 4px 4px;
¡¡¡¡}
¡¡¡¡/* ÓÒ²à */
¡¡¡¡div.operating-panel {
¡¡¡¡position: absolute;
¡¡¡¡left: 610px;
¡¡¡¡top: 150px;
¡¡¡¡width: 200px;
¡¡¡¡text-align: center;
¡¡¡¡}
¡¡¡¡.operating-panel a {
¡¡¡¡display: inline-block;
¡¡¡¡padding: 10px 15px;
¡¡¡¡margin-bottom: 39px;
¡¡¡¡margin-right: 8px;
¡¡¡¡margin-left: 8px;
¡¡¡¡background: rgb(100, 167, 233);
¡¡¡¡text-decoration: none;
¡¡¡¡color: #333;
¡¡¡¡font-weight: bold;
¡¡¡¡font-size: 16px;
¡¡¡¡font-family: "΢ÈíÑźÚ", "ËÎÌå";
¡¡¡¡}
¡¡¡¡.operating-panel a:hover {
¡¡¡¡background: rgb(48, 148, 247);
¡¡¡¡text-decoration: none;
¡¡¡¡}
¡¡¡¡.operating-panel a.disable, .operating-panel a.disable:hover {
¡¡¡¡cursor: default;
¡¡¡¡background: rgb(197, 203, 209);
¡¡¡¡color: rgb(130, 139, 148);
¡¡¡¡}
¡¡¡¡.operating-panel a.selected {
¡¡¡¡border: 5px solid #F3C242;
¡¡¡¡padding: 5px 10px;
¡¡¡¡}
¡¡¡¡#result_tips {
¡¡¡¡color: #CE4242;
¡¡¡¡font-size: 26px;
¡¡¡¡font-family: "΢ÈíÑźÚ";
¡¡¡¡}
¡¡¡¡#result_info {
¡¡¡¡margin-bottom: 26px;
¡¡¡¡}
¡¡¡¡</style>
¡¡¡¡<script>
¡¡¡¡$(document).ready(function() {
¡¡¡¡fiveChess.init();
¡¡¡¡});
¡¡¡¡var fiveChess = {
¡¡¡¡NO_CHESS: 0,
¡¡¡¡BLACK_CHESS: -1,
¡¡¡¡WHITE_CHESS: 1,
¡¡¡¡chessArr: [], //¼Ç¼Æå×Ó
¡¡¡¡chessBoardHtml: "",
¡¡¡¡humanPlayer: "black",//Íæ¼ÒÆå×ÓÑÕÉ«
¡¡¡¡AIPlayer: "white",//AIÆå×ÓÑÕÉ«
¡¡¡¡isPlayerTurn: true, //ÂÖµ½playerÏÂÆå
¡¡¡¡totalGames: cookieHandle.getCookie("totalGames") || 0,//×ܾÖÊý
¡¡¡¡winGames: cookieHandle.getCookie("winGames") || 0,//Íæ¼ÒÓ®¾ÖÊý
¡¡¡¡isGameStart: false,//ÓÎÏ·ÒѾ¿ªÊ¼
¡¡¡¡isGameOver: false, //ÓÎÏ·½áÊø
¡¡¡¡playerLastChess: [], //Íæ¼Ò×îºóÏÂ×ÓλÖÃ
¡¡¡¡AILastChess: [], //AI×îºóÏÂ×ÓλÖÃ
¡¡¡¡init: function () {
¡¡¡¡this.chessBoardHtml = $("div.chessboard").html();
¡¡¡¡var _fiveChess = this;
¡¡¡¡//ÓÒ²à²Ù×÷°´Å¥
¡¡¡¡$(".operating-panel a").click(function (event) {
¡¡¡¡event.preventDefault();
¡¡¡¡var id = $(this).attr("id");
¡¡¡¡if (_fiveChess.isGameStart && id !== "replay_btn" ) { return; }//ÕýÔÚÓÎÏ· ²»²Ù×÷
¡¡¡¡switch (id) {
¡¡¡¡case "black_btn":
¡¡¡¡_fiveChess.humanPlayer = "black";
¡¡¡¡_fiveChess.AIPlayer = "white";
¡¡¡¡break;
¡¡¡¡case "white_btn":
¡¡¡¡_fiveChess.humanPlayer = "white";
¡¡¡¡_fiveChess.AIPlayer = "black";
¡¡¡¡break;
¡¡¡¡case "first_move_btn":
¡¡¡¡_fiveChess.isPlayerTurn = true;
¡¡¡¡break;
¡¡¡¡case "second_move_btn":
¡¡¡¡_fiveChess.isPlayerTurn = false;
¡¡¡¡break;
¡¡¡¡case "replay_btn":
¡¡¡¡_fiveChess.resetChessBoard();
¡¡¡¡if (_fiveChess.isGameStart) {//µãÖØÍæ
¡¡¡¡_fiveChess.gameOver();
¡¡¡¡}
¡¡¡¡else { //µã¿ªÊ¼
¡¡¡¡_fiveChess.gameStart();
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡if (id !== "replay_btn") {
¡¡¡¡$(this).addClass("selected").siblings().removeClass("selected");
¡¡¡¡}
¡¡¡¡});
¡¡¡¡this.resetChessBoard();
¡¡¡¡$("#result_info").html("ʤÂÊ£º" + (this.winGames * 100 / this.totalGames | 0) + "%");
¡¡¡¡},
¡¡¡¡//ÖØÖÃÆåÅÌ
¡¡¡¡resetChessBoard: function () {
¡¡¡¡$("div.chessboard").html(this.chessBoardHtml);
¡¡¡¡$("#result_tips").html("");
¡¡¡¡this.isGameOver = false;
¡¡¡¡this.isPlayerTurn = $("#first_move_btn").hasClass("selected");
¡¡¡¡//³õʼ»¯Æå×Ó״̬
¡¡¡¡var i, j;
¡¡¡¡for (i = 0; i < 15; i++) {
¡¡¡¡this.chessArr[i] = [];
¡¡¡¡for (j = 0; j < 15; j++) {
¡¡¡¡this.chessArr[i][j] = this.NO_CHESS;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡//playerÏÂÆåʼþ
¡¡¡¡var _fiveChess = this;
¡¡¡¡$("div.chessboard div").click(function () {
¡¡¡¡if (!_fiveChess.isPlayerTurn || _fiveChess.isGameOver) {
¡¡¡¡return;
¡¡¡¡}
¡¡¡¡if (!_fiveChess.isGameStart) {
¡¡¡¡_fiveChess.gameStart();
¡¡¡¡}
¡¡¡¡var index = $(this).index(),
¡¡¡¡i = index / 15 | 0,
¡¡¡¡j = index % 15;
¡¡¡¡if (_fiveChess.chessArr[i][j] === _fiveChess.NO_CHESS) {
¡¡¡¡_fiveChess.playChess(i, j, _fiveChess.humanPlayer);
¡¡¡¡if (i === 0 && j === 0) {
¡¡¡¡$(this).removeClass("hover-up-left");
¡¡¡¡}
¡¡¡¡else if (i === 0 && j === 14) {
¡¡¡¡$(this).removeClass("hover-up-right");
¡¡¡¡}
¡¡¡¡else if (i === 14 && j === 0) {
¡¡¡¡$(this).removeClass("hover-down-left");
¡¡¡¡}
¡¡¡¡else if (i === 14 && j === 14) {
¡¡¡¡$(this).removeClass("hover-down-right");
¡¡¡¡}
¡¡¡¡else if (i === 0) {
¡¡¡¡$(this).removeClass("hover-up");
¡¡¡¡}
¡¡¡¡else if (i === 14) {
¡¡¡¡$(this).removeClass("hover-down");
¡¡¡¡}
¡¡¡¡else if (j === 0) {
¡¡¡¡$(this).removeClass("hover-left");
¡¡¡¡}
¡¡¡¡else if (j === 14) {
¡¡¡¡$(this).removeClass("hover-right");
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡$(this).removeClass("hover");
¡¡¡¡}
¡¡¡¡_fiveChess.playerLastChess = [i, j];
¡¡¡¡_fiveChess.playerWinOrNot(i, j);
¡¡¡¡}
¡¡¡¡});
¡¡¡¡//Êó±êÔÚÆåÅÌÉÏÒÆ¶¯Ð§¹û
¡¡¡¡$("div.chessboard div").hover(
¡¡¡¡function () {
¡¡¡¡if (!_fiveChess.isPlayerTurn || _fiveChess.isGameOver) { return; }
¡¡¡¡var index = $(this).index(),
¡¡¡¡i = index / 15 | 0,
¡¡¡¡j = index % 15;
¡¡¡¡if (_fiveChess.chessArr[i][j] === _fiveChess.NO_CHESS) {
¡¡¡¡if (i === 0 && j === 0) {
¡¡¡¡$(this).addClass("hover-up-left");
¡¡¡¡}
¡¡¡¡else if (i === 0 && j === 14) {
¡¡¡¡$(this).addClass("hover-up-right");
¡¡¡¡}
¡¡¡¡else if (i === 14 && j === 0) {
¡¡¡¡$(this).addClass("hover-down-left");
¡¡¡¡}
¡¡¡¡else if (i === 14 && j === 14) {
¡¡¡¡$(this).addClass("hover-down-right");
¡¡¡¡}
¡¡¡¡else if (i === 0) {
¡¡¡¡$(this).addClass("hover-up");
¡¡¡¡}
¡¡¡¡else if (i === 14) {
¡¡¡¡$(this).addClass("hover-down");
¡¡¡¡}
¡¡¡¡else if (j === 0) {
¡¡¡¡$(this).addClass("hover-left");
¡¡¡¡}
¡¡¡¡else if (j === 14) {
¡¡¡¡$(this).addClass("hover-right");
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡$(this).addClass("hover");
¡¡¡¡}
¡¡¡¡}
¡¡¡¡},
¡¡¡¡function () {
¡¡¡¡if (!_fiveChess.isPlayerTurn || _fiveChess.isGameOver) { return; }
¡¡¡¡var index = $(this).index(),
¡¡¡¡i = index / 15 | 0,
¡¡¡¡j = index % 15;
¡¡¡¡if (i === 0 && j === 0) {
¡¡¡¡$(this).removeClass("hover-up-left");
¡¡¡¡}
¡¡¡¡else if (i === 0 && j === 14) {
¡¡¡¡$(this).removeClass("hover-up-right");
¡¡¡¡}
¡¡¡¡else if (i === 14 && j === 0) {
¡¡¡¡$(this).removeClass("hover-down-left");
¡¡¡¡}
¡¡¡¡else if (i === 14 && j === 14) {
¡¡¡¡$(this).removeClass("hover-down-right");
¡¡¡¡}
¡¡¡¡else if (i === 0) {
¡¡¡¡$(this).removeClass("hover-up");
¡¡¡¡}
¡¡¡¡else if (i === 14) {
¡¡¡¡$(this).removeClass("hover-down");
¡¡¡¡}
¡¡¡¡else if (j === 0) {
¡¡¡¡$(this).removeClass("hover-left");
¡¡¡¡}
¡¡¡¡else if (j === 14) {
¡¡¡¡$(this).removeClass("hover-right");
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡$(this).removeClass("hover");
¡¡¡¡}
¡¡¡¡}
¡¡¡¡);
¡¡¡¡},
¡¡¡¡gameStart: function () {
¡¡¡¡this.totalGames++;
¡¡¡¡cookieHandle.setCookie({ name: "totalGames", value: this.totalGames, expiresHours: 365 * 24 });
¡¡¡¡//AIÏÈÊÖ
¡¡¡¡if (!this.isPlayerTurn) {
¡¡¡¡this.AImoveChess();
¡¡¡¡}
¡¡¡¡this.isGameStart = true;
¡¡¡¡$(".operating-panel p a").addClass("disable");
¡¡¡¡$("#replay_btn").html("ÖØÍæ");
¡¡¡¡},
¡¡¡¡gameOver: function () {
¡¡¡¡this.isGameStart = false;
¡¡¡¡$(".operating-panel a").removeClass("disable");
¡¡¡¡$("#replay_btn").html("¿ªÊ¼");
¡¡¡¡$("#result_info").html("ʤÂÊ£º" + (this.winGames * 100 / this.totalGames | 0) + "%");
¡¡¡¡},
¡¡¡¡//ÏÂÆå iÐУ¬jÁУ¬colorÑÕÉ«
¡¡¡¡playChess: function (i, j, color) {
¡¡¡¡this.chessArr[i][j] = color === "black" ? this.BLACK_CHESS : this.WHITE_CHESS;
¡¡¡¡if (color === this.AIPlayer) {
¡¡¡¡$("div.chessboard div." + color + "-last").addClass(color).removeClass(color + "-last");
¡¡¡¡$("div.chessboard div:eq(" + (i * 15 + j) + ")").addClass(color + "-last");
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡$("div.chessboard div:eq(" + (i * 15 + j) + ")").addClass(color);
¡¡¡¡}
¡¡¡¡},
¡¡¡¡//Íæ¼ÒÊÇ·ñȡʤ
¡¡¡¡playerWinOrNot: function (i, j) {
¡¡¡¡var nums = 1, //Á¬ÐøÆå×Ó¸öÊý
¡¡¡¡chessColor = this.humanPlayer === "black" ? this.BLACK_CHESS : this.WHITE_CHESS,
¡¡¡¡m, n;
¡¡¡¡//x·½Ïò
¡¡¡¡for (m = j - 1; m >= 0; m--) {
¡¡¡¡if (this.chessArr[i][m] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡for (m = j + 1; m < 15; m++) {
¡¡¡¡if (this.chessArr[i][m] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡if (nums >= 5) {
¡¡¡¡this.playerWin();
¡¡¡¡return;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡nums = 1;
¡¡¡¡}
¡¡¡¡//y·½Ïò
¡¡¡¡for (m = i - 1; m >= 0; m--) {
¡¡¡¡if (this.chessArr[m][j] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡for (m = i + 1; m < 15; m++) {
¡¡¡¡if (this.chessArr[m][j] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡if (nums >= 5) {
¡¡¡¡this.playerWin();
¡¡¡¡return;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡nums = 1;
¡¡¡¡}
¡¡¡¡//×óб·½Ïò
¡¡¡¡for (m = i - 1, n = j - 1; m >= 0 && n >= 0; m--, n--) {
¡¡¡¡if (this.chessArr[m][n] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡for (m = i + 1, n = j + 1; m < 15 && n < 15; m++, n++) {
¡¡¡¡if (this.chessArr[m][n] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡if (nums >= 5) {
¡¡¡¡this.playerWin();
¡¡¡¡return;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡nums = 1;
¡¡¡¡}
¡¡¡¡//ÓÒб·½Ïò
¡¡¡¡for (m = i - 1, n = j + 1; m >= 0 && n < 15; m--, n++) {
¡¡¡¡if (this.chessArr[m][n] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡for (m = i + 1, n = j - 1; m < 15 && n >= 0; m++, n--) {
¡¡¡¡if (this.chessArr[m][n] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡if (nums >= 5) {
¡¡¡¡this.playerWin();
¡¡¡¡return;
¡¡¡¡}
¡¡¡¡this.AImoveChess();
¡¡¡¡},
¡¡¡¡playerWin: function () {
¡¡¡¡this.winGames++;
¡¡¡¡cookieHandle.setCookie({ name: "winGames", value: this.winGames, expiresHours: 365 * 24 });
¡¡¡¡this.showResult(true);
¡¡¡¡this.gameOver();
¡¡¡¡},
¡¡¡¡//AIÏÂÆå
¡¡¡¡AImoveChess: function () {
¡¡¡¡this.isPlayerTurn = false;
¡¡¡¡var maxX = 0,
¡¡¡¡maxY = 0,
¡¡¡¡maxWeight = 0,
¡¡¡¡i, j, tem;
¡¡¡¡for (i = 14; i >= 0; i--) {
¡¡¡¡for (j = 14; j >= 0; j--) {
¡¡¡¡if (this.chessArr[i][j] !== this.NO_CHESS) {
¡¡¡¡continue;
¡¡¡¡}
¡¡¡¡tem = this.computeWeight(i, j);
¡¡¡¡if (tem > maxWeight) {
¡¡¡¡maxWeight = tem;
¡¡¡¡maxX = i;
¡¡¡¡maxY = j;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}
¡¡¡¡this.playChess(maxX, maxY, this.AIPlayer);
¡¡¡¡this.AILastChess = [maxX, maxY];
¡¡¡¡if ((maxWeight >= 100000 && maxWeight < 250000) || (maxWeight >= 500000)) {
¡¡¡¡this.showResult(false);
¡¡¡¡this.gameOver();
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡this.isPlayerTurn = true;
¡¡¡¡}
¡¡¡¡},
¡¡¡¡showResult: function(isPlayerWin) {
¡¡¡¡if (isPlayerWin) {
¡¡¡¡$("#result_tips").html("¹§Ï²Äã»ñʤ£¡");
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡$("#result_tips").html("¹þ¹þ£¬ÄãÊä¿©£¡");
¡¡¡¡}
¡¡¡¡this.isGameOver = true;
¡¡¡¡this.showWinChesses(isPlayerWin);
¡¡¡¡},
¡¡¡¡//±ê¼ÇÏÔʾ»ñʤÆå×Ó
¡¡¡¡showWinChesses: function (isPlayerWin) {
¡¡¡¡var nums = 1, //Á¬ÐøÆå×Ó¸öÊý
¡¡¡¡lineChess = [],//Á¬ÐøÆå×ÓλÖÃ
¡¡¡¡i,
¡¡¡¡j,
¡¡¡¡chessColor,
¡¡¡¡m, n;
¡¡¡¡if (isPlayerWin) {
¡¡¡¡chessColor = this.humanPlayer === "black" ? this.BLACK_CHESS : this.WHITE_CHESS;
¡¡¡¡i = this.playerLastChess[0];
¡¡¡¡j = this.playerLastChess[1];
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡chessColor = this.AIPlayer === "black" ? this.BLACK_CHESS : this.WHITE_CHESS;
¡¡¡¡i = this.AILastChess[0];
¡¡¡¡j = this.AILastChess[1];
¡¡¡¡}
¡¡¡¡$("div.chessboard div." + this.AIPlayer + "-last").addClass(this.AIPlayer).removeClass(this.AIPlayer + "-last");
¡¡¡¡//x·½Ïò
¡¡¡¡lineChess[0] = [i];
¡¡¡¡lineChess[1] = [j];
¡¡¡¡for (m = j - 1; m >= 0; m--) {
¡¡¡¡if (this.chessArr[i][m] === chessColor) {
¡¡¡¡lineChess[0][nums] = i;
¡¡¡¡lineChess[1][nums] = m;
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡for (m = j + 1; m < 15; m++) {
¡¡¡¡if (this.chessArr[i][m] === chessColor) {
¡¡¡¡lineChess[0][nums] = i;
¡¡¡¡lineChess[1][nums] = m;
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡if (nums >= 5) {
¡¡¡¡for (k = nums - 1; k >= 0; k--) {
¡¡¡¡this.markChess(lineChess[0][k] * 15 + lineChess[1][k], isPlayerWin ? this.humanPlayer : this.AIPlayer);
¡¡¡¡}
¡¡¡¡return;
¡¡¡¡}
¡¡¡¡//y·½Ïò
¡¡¡¡nums = 1;
¡¡¡¡lineChess[0] = [i];
¡¡¡¡lineChess[1] = [j];
¡¡¡¡for (m = i - 1; m >= 0; m--) {
¡¡¡¡if (this.chessArr[m][j] === chessColor) {
¡¡¡¡lineChess[0][nums] = m;
¡¡¡¡lineChess[1][nums] = j;
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡for (m = i + 1; m < 15; m++) {
¡¡¡¡if (this.chessArr[m][j] === chessColor) {
¡¡¡¡lineChess[0][nums] = m;
¡¡¡¡lineChess[1][nums] = j;
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡if (nums >= 5) {
¡¡¡¡for (k = nums - 1; k >= 0; k--) {
¡¡¡¡this.markChess(lineChess[0][k] * 15 + lineChess[1][k], isPlayerWin ? this.humanPlayer : this.AIPlayer);
¡¡¡¡}
¡¡¡¡return;
¡¡¡¡}
¡¡¡¡//×óб·½Ïò
¡¡¡¡nums = 1;
¡¡¡¡lineChess[0] = [i];
¡¡¡¡lineChess[1] = [j];
¡¡¡¡for (m = i - 1, n = j - 1; m >= 0 && n >= 0; m--, n--) {
¡¡¡¡if (this.chessArr[m][n] === chessColor) {
¡¡¡¡lineChess[0][nums] = m;
¡¡¡¡lineChess[1][nums] = n;
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡for (m = i + 1, n = j + 1; m < 15 && n < 15; m++, n++) {
¡¡¡¡if (this.chessArr[m][n] === chessColor) {
¡¡¡¡lineChess[0][nums] = m;
¡¡¡¡lineChess[1][nums] = n;
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡if (nums >= 5) {
¡¡¡¡for (k = nums - 1; k >= 0; k--) {
¡¡¡¡this.markChess(lineChess[0][k] * 15 + lineChess[1][k], isPlayerWin ? this.humanPlayer : this.AIPlayer);
¡¡¡¡}
¡¡¡¡return;
¡¡¡¡}
¡¡¡¡//ÓÒб·½Ïò
¡¡¡¡nums = 1;
¡¡¡¡lineChess[0] = [i];
¡¡¡¡lineChess[1] = [j];
¡¡¡¡for (m = i - 1, n = j + 1; m >= 0 && n < 15; m--, n++) {
¡¡¡¡if (this.chessArr[m][n] === chessColor) {
¡¡¡¡lineChess[0][nums] = m;
¡¡¡¡lineChess[1][nums] = n;
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡for (m = i + 1, n = j - 1; m < 15 && n >= 0; m++, n--) {
¡¡¡¡if (this.chessArr[m][n] === chessColor) {
¡¡¡¡lineChess[0][nums] = m;
¡¡¡¡lineChess[1][nums] = n;
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡if (nums >= 5) {
¡¡¡¡for (k = nums - 1; k >= 0; k--) {
¡¡¡¡this.markChess(lineChess[0][k] * 15 + lineChess[1][k], isPlayerWin ? this.humanPlayer : this.AIPlayer);
¡¡¡¡}
¡¡¡¡}
¡¡¡¡},
¡¡¡¡markChess: function (pos, color) {
¡¡¡¡$("div.chessboard div:eq(" + pos + ")").removeClass(color).addClass(color + "-last");
¡¡¡¡},
¡¡¡¡//ÏÂ×Óµ½i£¬j X·½Ïò ½á¹û: ¶àÉÙÁ¬×Ó Á½±ßÊÇ·ñ½Ø¶Ï
¡¡¡¡putDirectX: function (i, j, chessColor) {
¡¡¡¡var m, n,
¡¡¡¡nums = 1,
¡¡¡¡side1 = false,
¡¡¡¡side2 = false;
¡¡¡¡for (m = j - 1; m >= 0; m--) {
¡¡¡¡if (this.chessArr[i][m] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡if (this.chessArr[i][m] === this.NO_CHESS) {
¡¡¡¡side1 = true;
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡for (m = j + 1; m < 15; m++) {
¡¡¡¡if (this.chessArr[i][m] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡if (this.chessArr[i][m] === this.NO_CHESS) {
¡¡¡¡side2 = true;
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡return {"nums": nums, "side1": side1, "side2": side2};
¡¡¡¡},
¡¡¡¡//ÏÂ×Óµ½i£¬j Y·½Ïò ½á¹û
¡¡¡¡putDirectY: function (i, j, chessColor) {
¡¡¡¡var m, n,
¡¡¡¡nums = 1,
¡¡¡¡side1 = false,
¡¡¡¡side2 = false;
¡¡¡¡for (m = i - 1; m >= 0; m--) {
¡¡¡¡if (this.chessArr[m][j] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡if (this.chessArr[m][j] === this.NO_CHESS) {
¡¡¡¡side1 = true;
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡for (m = i + 1; m < 15; m++) {
¡¡¡¡if (this.chessArr[m][j] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡if (this.chessArr[m][j] === this.NO_CHESS) {
¡¡¡¡side2 = true;
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡return {"nums": nums, "side1": side1, "side2": side2};
¡¡¡¡},
¡¡¡¡//ÏÂ×Óµ½i£¬j XY·½Ïò ½á¹û
¡¡¡¡putDirectXY: function (i, j, chessColor) {
¡¡¡¡var m, n,
¡¡¡¡nums = 1,
¡¡¡¡side1 = false,
¡¡¡¡side2 = false;
¡¡¡¡for (m = i - 1, n = j - 1; m >= 0 && n >= 0; m--, n--) {
¡¡¡¡if (this.chessArr[m][n] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡if (this.chessArr[m][n] === this.NO_CHESS) {
¡¡¡¡side1 = true;
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡for (m = i + 1, n = j + 1; m < 15 && n < 15; m++, n++) {
¡¡¡¡if (this.chessArr[m][n] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡if (this.chessArr[m][n] === this.NO_CHESS) {
¡¡¡¡side2 = true;
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡return {"nums": nums, "side1": side1, "side2": side2};
¡¡¡¡},
¡¡¡¡putDirectYX: function (i, j, chessColor) {
¡¡¡¡var m, n,
¡¡¡¡nums = 1,
¡¡¡¡side1 = false,
¡¡¡¡side2 = false;
¡¡¡¡for (m = i - 1, n = j + 1; m >= 0 && n < 15; m--, n++) {
¡¡¡¡if (this.chessArr[m][n] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡if (this.chessArr[m][n] === this.NO_CHESS) {
¡¡¡¡side1 = true;
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡for (m = i + 1, n = j - 1; m < 15 && n >= 0; m++, n--) {
¡¡¡¡if (this.chessArr[m][n] === chessColor) {
¡¡¡¡nums++;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡if (this.chessArr[m][n] === this.NO_CHESS) {
¡¡¡¡side2 = true;
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡return {"nums": nums, "side1": side1, "side2": side2};
¡¡¡¡},
¡¡¡¡//¼ÆËãÏÂ×ÓÖÁi,jµÄÈ¨ÖØ
¡¡¡¡computeWeight: function (i, j) {
¡¡¡¡var weight = 14 - (Math.abs(i - 7) + Math.abs(j - 7)), //»ùÓÚÆåÅÌλÖÃÈ¨ÖØ
¡¡¡¡pointInfo = {},//ijµãÏÂ×ÓºóÁ¬×ÓÐÅÏ¢
¡¡¡¡chessColor = this.AIPlayer === "black" ? this.BLACK_CHESS : this.WHITE_CHESS;
¡¡¡¡//x·½Ïò
¡¡¡¡pointInfo = this.putDirectX(i, j, chessColor);
¡¡¡¡weight += this.weightStatus(pointInfo.nums, pointInfo.side1, pointInfo.side2, true);//AIÏÂ×ÓÈ¨ÖØ
¡¡¡¡pointInfo = this.putDirectX(i, j, -chessColor);
¡¡¡¡weight += this.weightStatus(pointInfo.nums, pointInfo.side1, pointInfo.side2, false);//playerÏÂ×ÓÈ¨ÖØ
¡¡¡¡//y·½Ïò
¡¡¡¡pointInfo = this.putDirectY(i, j, chessColor);
¡¡¡¡weight += this.weightStatus(pointInfo.nums, pointInfo.side1, pointInfo.side2, true);//AIÏÂ×ÓÈ¨ÖØ
¡¡¡¡pointInfo = this.putDirectY(i, j, -chessColor);
¡¡¡¡weight += this.weightStatus(pointInfo.nums, pointInfo.side1, pointInfo.side2, false);//playerÏÂ×ÓÈ¨ÖØ
¡¡¡¡//×óб·½Ïò
¡¡¡¡pointInfo = this.putDirectXY(i, j, chessColor);
¡¡¡¡weight += this.weightStatus(pointInfo.nums, pointInfo.side1, pointInfo.side2, true);//AIÏÂ×ÓÈ¨ÖØ
¡¡¡¡pointInfo = this.putDirectXY(i, j, -chessColor);
¡¡¡¡weight += this.weightStatus(pointInfo.nums, pointInfo.side1, pointInfo.side2, false);//playerÏÂ×ÓÈ¨ÖØ
¡¡¡¡//ÓÒб·½Ïò
¡¡¡¡pointInfo = this.putDirectYX(i, j, chessColor);
¡¡¡¡weight += this.weightStatus(pointInfo.nums, pointInfo.side1, pointInfo.side2, true);//AIÏÂ×ÓÈ¨ÖØ
¡¡¡¡pointInfo = this.putDirectYX(i, j, -chessColor);
¡¡¡¡weight += this.weightStatus(pointInfo.nums, pointInfo.side1, pointInfo.side2, false);//playerÏÂ×ÓÈ¨ÖØ
¡¡¡¡return weight;
¡¡¡¡},
¡¡¡¡//È¨ÖØ·½°¸ ¶À£ºÁ½±ßΪ¿Õ¿ÉÏÂ×Ó£¬µ¥£ºÒ»±ßΪ¿Õ
¡¡¡¡weightStatus: function (nums, side1, side2, isAI) {
¡¡¡¡var weight = 0;
¡¡¡¡switch (nums) {
¡¡¡¡case 1:
¡¡¡¡if (side1 && side2) {
¡¡¡¡weight = isAI ? 15 : 10;//¶ÀÒ»
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡case 2:
¡¡¡¡if (side1 && side2) {
¡¡¡¡weight = isAI ? 100 : 50;//¶À¶þ
¡¡¡¡}
¡¡¡¡else if (side1 || side2) {
¡¡¡¡weight = isAI ? 10 : 5;//µ¥¶þ
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡case 3:
¡¡¡¡if (side1 && side2) {
¡¡¡¡weight = isAI ? 500 : 200;//¶ÀÈý
¡¡¡¡}
¡¡¡¡else if (side1 || side2) {
¡¡¡¡weight = isAI ? 30 : 20;//µ¥Èý
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡case 4:
¡¡¡¡if (side1 && side2) {
¡¡¡¡weight = isAI ? 5000 : 2000;//¶ÀËÄ
¡¡¡¡}
¡¡¡¡else if (side1 || side2) {
¡¡¡¡weight = isAI ? 400 : 100;//µ¥ËÄ
¡¡¡¡}
¡¡¡¡break;
¡¡¡¡case 5:
¡¡¡¡weight = isAI ? 100000 : 10000;//Îå
¡¡¡¡break;
¡¡¡¡default:
¡¡¡¡weight = isAI ? 500000 : 250000;
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡return weight;
¡¡¡¡}
¡¡¡¡};
¡¡¡¡</script>
¡¡¡¡</head>
¡¡¡¡<body>
¡¡¡¡<div class="wrapper">
¡¡¡¡<div class="chessboard">
¡¡¡¡<!-- top line -->
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top"></div>
¡¡¡¡<div class="chess-top chess-right"></div>
¡¡¡¡<!-- line 1 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- line 2 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- line 3 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- line 4 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- line 5 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- line 6 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- line 7 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- line 8 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- line 9 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- line 10 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- line 11 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- line 12 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- line 13 -->
¡¡¡¡<div class="chess-left"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-middle"></div>
¡¡¡¡<div class="chess-right"></div>
¡¡¡¡<!-- bottom line -->
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom"></div>
¡¡¡¡<div class="chess-bottom chess-right"></div>
¡¡¡¡</div>
¡¡¡¡<div class="operating-panel">
¡¡¡¡<p>
¡¡¡¡<a id="black_btn" class="btn selected" href="#">ºÚ×Ó</a>
¡¡¡¡<a id="white_btn" class="btn" href="#">°××Ó</a>
¡¡¡¡</p>
¡¡¡¡<p>
¡¡¡¡<a id="first_move_btn" class="btn selected" href="#">ÏÈÊÖ</a>
¡¡¡¡<a id="second_move_btn" class="btn" href="#">ºóÊÖ</a>
¡¡¡¡</p>
¡¡¡¡<a id="replay_btn" class="btn" href="#">¿ªÊ¼</a>
¡¡¡¡<p id="result_info">ʤÂÊ£º100%</p>
¡¡¡¡<p id="result_tips"></p>
¡¡¡¡</div>
¡¡¡¡<div style="display: none">
¡¡¡¡<!-- ͼƬÐèºÏ²¢ ¼õÉÙhttpÇëÇóÊý -->
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/black.png" alt="preload" />
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/white.png" alt="preload" />
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover.png" alt="preload" />
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_up.png" alt="preload" />
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_down.png" alt="preload" />
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_up_left.png" alt="preload" />
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_up_right.png" alt="preload" />
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_left.png" alt="preload" />
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_right.png" alt="preload" />
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_down_left.png" alt="preload" />
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/hover_down_right.png" alt="preload" />
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/black_last.png" alt="preload" />
¡¡¡¡<img src="http://sandbox.runjs.cn/uploads/rs/102/r2dy3tyw/white_last.png" alt="preload" />
¡¡¡¡</div>
¡¡¡¡</div>
¡¡¡¡</body>
¡¡¡¡</html>