´¿JSʵÏÖÎå×ÓÆåÓÎÏ·¼æÈݸ÷ä¯ÀÀÆ÷(¸½Ô´Âë)

¡¡¡¡´¿JSÎå×ӯ壍¸÷ä¯ÀÀÆ÷¼æÈÝ£©

¡¡¡¡Ð§¹ûͼ£º

´¿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>