下拉刷新
OneFile
源码
minesweeper扫雷游戏
作者 terrymckay·主语言 HTML·无依赖·4.1k 次查看
<html> <head> <link rel="apple-touch-icon" sizes="180x180" href="https://img.hellogithub.com/favicon/apple-touch-icon.png"> <link rel="android-chrome" sizes="192x192" href="https://img.hellogithub.com/favicon/android-chrome-192x192.png"> <link rel="android-chrome" sizes="512x512" href="https://img.hellogithub.com/favicon/android-chrome-512x512.png"> <link rel="icon" type="image/png" sizes="32x32" href="https://img.hellogithub.com/favicon/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="https://img.hellogithub.com/favicon/favicon-16x16.png"> <link rel="icon" href="https://img.hellogithub.com/favicon/favicon.ico"> <title>扫雷</title> <style type="text/css"> .minetbl { border: solid #008800 2px; cursor: crosshair; } body { background-color: #000000; color: #aaFFaa; } input { background-color: #330033; color: #aaFFaa; border: solid #00FF00 1px; text-align: center; } select { background-color: #330033; color: #aaFFaa; border: solid #00FF00 1px; text-align: center; } #headingBox { position: absolute; top: 8px; left: 8px; z-index: 100; width: auto; overflow: visible; } H1, H2 { margin: 0px; padding: 0px; } #face { border: none; text-decoration: none; color: #FFFF00; font-size: 52px; } #modeBox { position: absolute; border: solid green 1px; top: 0px; right: 0px; z-index: 101; padding-top: 8px; padding-right: 8px; padding-left: 8px; padding-bottom: 0px; } #modeBoxHandle { border: solid green 1px; text-align: center; -moz-border-radius: 10 10 0 0; } #modeBoxHandleText { color: #44ff44; text-decoration: none; } .minecell { height: 2EM; width: 2EM; text-align: center; font-size: 1.5EM; vertical-align: center; } </style> <script> var i, j, count; // Counter variables var firstMove = 1; // flag to indicate if the first move is made yet // Create the board var boardRows = 9; // these three variables represent the size of the board, var boardCols = 9; // and the number of mines found on it - once the auto- var boardMines = 10; // build feature (and multiple diff. lvls) are used, they // will determine how the board is built. var board = new Array(boardRows); var flags = new Array(boardRows); var clockFlag = "nothing running"; var clockAt = 0; var minesLeft = boardMines; // the dynamic count var tilesLeft = boardRows * boardCols - minesLeft; var totalClicks = 0; // Tracking how many clicks used so far (right and left both) var totalSquares = 0; // Tracking how many squares have been opened var hitBlankOrMine = 0; // For tracking how many "number" squares are hit before the // first "blank" area opens up, or a mine is hit. var tiles = new Array(); // Default font set: Full Emoji Support tiles[0] = "&nbsp;"; // Blank Space tiles[1] = "<span style='color:#0000FF'>1</span>"; tiles[2] = "<span style='color:#00FF00'>2</span>"; tiles[3] = "<span style='color:#FF0000'>3</span>"; tiles[4] = "<span style='color:#000088'>4</span>"; tiles[5] = "<span style='color:#008800'>5</span>"; tiles[6] = "<span style='color:#880000'>6</span>"; tiles[7] = "<span style='color:#008888'>7</span>"; tiles[8] = "<span style='color:#888800'>8</span>"; tiles[9] = "<span style='color:#008800'> &#9971;</span>"; // Planted Flag tiles[10] = "<span style='color:#FFFF00'>&#128165;</span>"; // Exploded Mine tiles[11] = "<span style='color:#FF0000'>&#128711;</span>"; // False Flag tiles[12] = "<span style='color:#000000'>&#128163;</span>"; // Unexploded Mine tiles[13] = "<span style='color:#00FF00'>?</span>"; // Unknown marking tiles[14] = "&#128578;"; // Happy face tiles[15] = "&#128534;"; // Dead face tiles[16] = "&#128526;"; // Victory face function setMode(mode) { switch (mode) { case "Beginner": boardRows = 9; boardCols = 9; boardMines = 10; break; case "Intermediate": boardRows = 16; boardCols = 16; boardMines = 40; break; case "Expert": boardRows = 16; boardCols = 30; boardMines = 99; break; case "Custom": boardRows = parseInt(document.forms.modes.nRows.value); boardCols = parseInt(document.forms.modes.nCols.value); boardMines = parseInt(document.forms.modes.nMines.value); default: }; document.getElementById("modeTitle").innerHTML = mode + " Mode"; document.forms.modes.nRows.value = boardRows; document.forms.modes.nCols.value = boardCols; document.forms.modes.nMines.value = boardMines; resetBoard(); }; function updateMines(incr) { var mineStr = "Mines:<br />"; minesLeft += incr; mineStr += minesLeft; document.getElementById("mineCount").innerHTML = mineStr; }; function updateClock() { var clockStr = "Time:<br />"; clockAt += 1; if (clockAt < 10) { clockStr += "0"; }; if (clockAt < 100) { clockStr += "0"; }; clockStr += clockAt; document.getElementById("timeCount").innerHTML = clockStr; }; function rebuildBoard() { var cR, cC; var tableStr = "<table class=\"minetbl\" cellspacing=\"0\" cellpadding=\"0\">\n"; for (cR = 0; cR < boardRows; cR++) { tableStr += "<tr>\n"; for (cC = 0; cC < boardCols; cC++) { tableStr += "<td class=\"minecell\" id=\"c" + cR + ":" + cC + "\" style=\"border: outset #aaaaaa 0.1EM; background-color: #888888;\" onclick=\"lClick('" + cR + ":" + cC + "')\" oncontextmenu=\"return rClick('" + cR + ":" + cC + "')\">&nbsp;</td>\n"; }; tableStr += "</tr>"; }; tableStr += "</table>\n"; document.getElementById("theTable").innerHTML = tableStr; }; function resetBoard() { // Reset everything - the flags and board arrays, the mines, the images, and the cell style properties. document.getElementById("face").innerHTML = tiles[14]; rebuildBoard(); if (clockFlag != "nothing running") { // Stop the clock if needed. clearInterval(clockFlag); }; clockAt = -1; // Now reset the clock to show 000 updateClock(); minesLeft = boardMines; totalClicks = 0; totalSquares = 0; hitBlankOrMine = 0; updateMines(0); firstMove = 1; for (i = 0; i < boardRows; i++) { board[i] = new Array(boardCols); flags[i] = new Array(boardCols); for (j = 0; j < boardCols; j++) { board[i][j] = " "; flags[i][j] = " "; document.getElementById("c" + i + ":" + j).innerHTML = "&nbsp;"; document.getElementById("c" + i + ":" + j).style.backgroundColor = "#888888"; document.getElementById("c" + i + ":" + j).style.borderStyle = "outset"; }; }; // Now place the mines for (count = 0; count < minesLeft; count++) { i = Math.round(Math.random() * (boardRows - 1)); j = Math.round(Math.random() * (boardCols - 1)); while (board[i][j] == "M") { // picked bad numbers, pick new ones. i = Math.round(Math.random() * (boardRows - 1)); j = Math.round(Math.random() * (boardCols - 1)); }; board[i][j] = "M"; }; tilesLeft = boardRows * boardCols - minesLeft; return false; }; function lClick(whichOne) { // most of the gameplay goes on here. var row, col; // local position variables var nrow, ncol, neighbors, theName, theMode; row = parseInt(whichOne); col = parseInt(whichOne.substring(whichOne.indexOf(":") + 1, whichOne.length)); if ((flags[row][col] == "F") || (flags[row][col] == "C")) { // don't allow clicks on flagged squares, or even count them. return false; }; totalClicks++; totalSquares++; if (firstMove) { firstMove = 0; // Only ever do this once per game. clockFlag = setInterval("updateClock()", 1000); if (board[row][col] == "M") { // Don't allow the user to click on a mine with their first click, // if they did, then move the mine before finishing the click. board[row][col] = " "; nrow = Math.round(Math.random() * (boardRows - 1)); ncol = Math.round(Math.random() * (boardCols - 1)); while (board[nrow][ncol] == "M") { // make sure the new place for this nrow = Math.round(Math.random() * (boardRows - 1)); // displaced mine is actually ncol = Math.round(Math.random() * (boardCols - 1)); // empty first ... }; board[nrow][ncol] = "M"; }; }; // Ok, the mine's status is dealt with, now fix other things like the // cell's border, and figure out which display image to show. document.getElementById("c" + whichOne).style.borderStyle = "solid"; document.getElementById("c" + whichOne).style.backgroundColor = "#aaaaaa"; if (board[row][col] == "M") { document.getElementById("face").innerHTML = tiles[15]; document.getElementById("c" + whichOne).style.backgroundColor = "red"; // Send out requests for the various "records" that can happen here: // 1: Most "number" squares clicked before hitting a blank area or a mine // 2: Most mines found before hitting a mine? theMode = document.forms.modes.modeSelect.options[document.forms.modes.modeSelect.selectedIndex].value; if (hitBlankOrMine == 0) { hitBlankOrMine = 1; }; clearInterval(clockFlag); clockFlag = "nothing running"; firstMove = 1; for (nrow = 0; nrow < boardRows; nrow++) { for (ncol = 0; ncol < boardCols; ncol++) { if ((board[nrow][ncol] == "M") && (flags[nrow][ncol] != "F")) { document.getElementById("c" + nrow + ":" + ncol).innerHTML = tiles[12]; }; if ((flags[nrow][ncol] == "F") && (board[nrow][ncol] != "M")) { document.getElementById("c" + nrow + ":" + ncol).innerHTML = tiles[11]; }; flags[nrow][ncol] = "C"; }; }; document.getElementById("c" + whichOne).innerHTML = tiles[10]; } else { // Not a mine! Figure out if it's next to one, or what... document.getElementById("c" + whichOne).innerHTML = tiles[0]; flags[row][col] = "C"; neighbors = neighbourCount(row, col); // Now neighbor count is complete... if (neighbors == 0) { // none! Click everything around yourself, but first, send out // requests for the various "records" that can happen here: // 1: Most "number" squares clicked before hitting a blank area or a mine theMode = document.forms.modes.modeSelect.options[document.forms.modes.modeSelect.selectedIndex].value; if (hitBlankOrMine == 0) { hitBlankOrMine = 1; }; if (row != 0) { // don't scan the row above if there isn't one. if (col != 0) { // don't scan left of the far left column lClick("" + (row - 1) + ":" + (col - 1)); // top left }; lClick("" + (row - 1) + ":" + (col)); // top center if (col < (boardCols - 1)) { // don't scan right of the far right column lClick("" + (row - 1) + ":" + (col + 1)); // top right }; }; if (col != 0) { // don't scan left of the far left column lClick("" + (row) + ":" + (col - 1)); // mid left }; if (col < (boardCols - 1)) { // don't scan right of the far right column lClick("" + (row) + ":" + (col + 1)); // mid right }; if (row < (boardRows - 1)) { // don't scan the row below if there isn't one. if (col != 0) { // don't scan left of the far left column lClick("" + (row + 1) + ":" + (col - 1)); // bot left }; lClick("" + (row + 1) + ":" + (col)); // bot center if (col < (boardCols - 1)) { // don't scan right of the far right column lClick("" + (row + 1) + ":" + (col + 1)); // bot right }; }; } else { // show the image for the number of neighbors... document.getElementById("c" + whichOne).style.backgroundColor = "#aaaaaa"; document.getElementById("c" + whichOne).style.borderStyle = "solid"; document.getElementById("c" + whichOne).innerHTML = tiles[neighbors]; }; tilesLeft -= 1; if (tilesLeft < 1) { // If they've got all of the tiles without mines uncovered, they're a winner! // Add the victory dance here. clearInterval(clockFlag); document.getElementById("face").innerHTML = tiles[16]; theMode = document.forms.modes.modeSelect.options[document.forms.modes.modeSelect.selectedIndex].value; for (nrow = 0; nrow < boardRows; nrow++) { for (ncol = 0; ncol < boardCols; ncol++) { flags[nrow][ncol] = "C"; if (board[nrow][ncol] == "M") { document.getElementById("c" + nrow + ":" + ncol).innerHTML = tiles[9]; }; }; }; }; }; }; function neighbourCount(row, col) { var crowd = 0; if (row > 0) { // don't look above the top row if (col > 0) { // don't look left of the left side if (board[row - 1][col - 1] == "M") { crowd++; }; }; if (board[row - 1][col] == "M") { crowd++; }; if (col < (boardCols - 1)) { // don't look right of the right side if (board[row - 1][col + 1] == "M") { crowd++; }; }; }; if (col > 0) { // don't look left of the left side if (board[row][col - 1] == "M") { crowd++; }; }; if (col < (boardCols - 1)) { // don't look right of the right side if (board[row][col + 1] == "M") { crowd++; }; }; if (row < (boardRows - 1)) { // don't look below the bottom if (col > 0) { // don't look left of the left side if (board[row + 1][col - 1] == "M") { crowd++; }; }; if (board[row + 1][col] == "M") { crowd++; }; if (col < (boardCols - 1)) { // don't look right of the right side if (board[row + 1][col + 1] == "M") { crowd++; }; }; }; return crowd; }; function flagCount(row, col) { var crowd = 0; if (row > 0) { // don't look above the top row if (col > 0) { // don't look left of the left side if (flags[row - 1][col - 1] == "F") { crowd++; }; }; if (flags[row - 1][col] == "F") { crowd++; }; if (col < (boardCols - 1)) { // don't look right of the right side if (flags[row - 1][col + 1] == "F") { crowd++; }; }; }; if (col > 0) { // don't look left of the left side if (flags[row][col - 1] == "F") { crowd++; }; }; if (col < (boardCols - 1)) { // don't look right of the right side if (flags[row][col + 1] == "F") { crowd++; }; }; if (row < (boardRows - 1)) { // don't look below the bottom if (col > 0) { // don't look left of the left side if (flags[row + 1][col - 1] == "F") { crowd++; }; }; if (flags[row + 1][col] == "F") { crowd++; }; if (col < (boardCols - 1)) { // don't look right of the right side if (flags[row + 1][col + 1] == "F") { crowd++; }; }; }; return crowd; }; function rClick(whichOne) { var nrow, ncol; row = parseInt(whichOne); col = parseInt(whichOne.substring(whichOne.indexOf(":") + 1, whichOne.length)); if (flags[row][col] == "C") { if ((neighbourCount(row, col) == flagCount(row, col)) && (neighbourCount(row, col) > 0)) { // same number of flags around the square as neighbours, "click" the surroundings. if (row != 0) { // don't scan the row above if there isn't one. if (col != 0) { // don't scan left of the far left column lClick("" + (row - 1) + ":" + (col - 1)); // top left }; lClick("" + (row - 1) + ":" + (col)); // top center if (col < (boardCols - 1)) { // don't scan right of the far right column lClick("" + (row - 1) + ":" + (col + 1)); // top right }; }; if (col != 0) { // don't scan left of the far left column lClick("" + (row) + ":" + (col - 1)); // mid left }; if (col < (boardCols - 1)) { // don't scan right of the far right column lClick("" + (row) + ":" + (col + 1)); // mid right }; if (row < (boardRows - 1)) { // don't scan the row below if there isn't one. if (col != 0) { // don't scan left of the far left column lClick("" + (row + 1) + ":" + (col - 1)); // bot left }; lClick("" + (row + 1) + ":" + (col)); // bot center if (col < (boardCols - 1)) { // don't scan right of the far right column lClick("" + (row + 1) + ":" + (col + 1)); // bot right }; }; }; return false; }; if (flags[row][col] == " ") { flags[row][col] = "F"; updateMines(-1); document.getElementById("c" + whichOne).innerHTML = tiles[9]; return false; }; if (flags[row][col] == "F") { updateMines(1); flags[row][col] = "?"; document.getElementById("c" + whichOne).innerHTML = tiles[13]; return false; }; if (flags[row][col] == "?") { flags[row][col] = " "; document.getElementById("c" + whichOne).innerHTML = tiles[0]; return false; }; return false; }; </script> <!-- figure out how to add in webmineIE.css for IE users? --> </head> <body onload="resetBoard()"> <div id="modeBox"> <form name="modes" action="#" method="GET" onsubmit="return false"> Mode: <select name="modeSelect" onchange="setMode(modeSelect.options[modeSelect.selectedIndex].value)"> <option value="Beginner">Beginner</option> <option value="Intermediate">Intermediate</option> <option value="Expert">Expert</option> <option value="Custom">Custom</option> </select> &nbsp; Row x Col:<input type="text" name="nRows" size="2" value="9"> x <input type="text" name="nCols" size="2" value="9"><br /> Mines:<input type="text" name="nMines" size="2" value="10"> &nbsp; <input type="button" name="goCust" value="activate custom board" onclick="setMode(modeSelect.options[modeSelect.selectedIndex].value)"> <br /> </form> </div> <div id="headingBox"> <h1>Web Minesweeper</h1> <h2 id="modeTitle">Beginner Mode</h2> </div> <br clear="all" /> <div align="center"> <table border="0" cellspacing="0" cellpadding="0" width="240"> <tr> <td id="mineCount" align="center" width="100">Mines:<br />10</td> <td align="center" width="40"><a href="#" onclick="return resetBoard();" id="face" border="0">&#128578;</a></td> <td id="timeCount" align="center" width="100">Time:<br />000</td> </tr> </table> <br /> <div id="theTable"> <table class="minetbl" cellspacing="0" cellpadding="0"> <tr> <td id="c0:0" onclick="lClick('0:0')" oncontextmenu="return rClick('0:0')" class="minecell">&nbsp; </td> <td id="c0:1" onclick="lClick('0:1')" oncontextmenu="return rClick('0:1')" class="minecell">&nbsp; </td> <td id="c0:2" onclick="lClick('0:2')" oncontextmenu="return rClick('0:2')" class="minecell">&nbsp; </td> <td id="c0:3" onclick="lClick('0:3')" oncontextmenu="return rClick('0:3')" class="minecell">&nbsp; </td> <td id="c0:4" onclick="lClick('0:4')" oncontextmenu="return rClick('0:4')" class="minecell">&nbsp; </td> <td id="c0:5" onclick="lClick('0:5')" oncontextmenu="return rClick('0:5')" class="minecell">&nbsp; </td> <td id="c0:6" onclick="lClick('0:6')" oncontextmenu="return rClick('0:6')" class="minecell">&nbsp; </td> <td id="c0:7" onclick="lClick('0:7')" oncontextmenu="return rClick('0:7')" class="minecell">&nbsp; </td> <td id="c0:8" onclick="lClick('0:8')" oncontextmenu="return rClick('0:8')" class="minecell">&nbsp; </td> </tr> <tr> <td id="c1:0" onclick="lClick('1:0')" oncontextmenu="return rClick('1:0')" class="minecell">&nbsp; </td> <td id="c1:1" onclick="lClick('1:1')" oncontextmenu="return rClick('1:1')" class="minecell">&nbsp; </td> <td id="c1:2" onclick="lClick('1:2')" oncontextmenu="return rClick('1:2')" class="minecell">&nbsp; </td> <td id="c1:3" onclick="lClick('1:3')" oncontextmenu="return rClick('1:3')" class="minecell">&nbsp; </td> <td id="c1:4" onclick="lClick('1:4')" oncontextmenu="return rClick('1:4')" class="minecell">&nbsp; </td> <td id="c1:5" onclick="lClick('1:5')" oncontextmenu="return rClick('1:5')" class="minecell">&nbsp; </td> <td id="c1:6" onclick="lClick('1:6')" oncontextmenu="return rClick('1:6')" class="minecell">&nbsp; </td> <td id="c1:7" onclick="lClick('1:7')" oncontextmenu="return rClick('1:7')" class="minecell">&nbsp; </td> <td id="c1:8" onclick="lClick('1:8')" oncontextmenu="return rClick('1:8')" class="minecell">&nbsp; </td> </tr> <tr> <td id="c2:0" onclick="lClick('2:0')" oncontextmenu="return rClick('2:0')" class="minecell">&nbsp; </td> <td id="c2:1" onclick="lClick('2:1')" oncontextmenu="return rClick('2:1')" class="minecell">&nbsp; </td> <td id="c2:2" onclick="lClick('2:2')" oncontextmenu="return rClick('2:2')" class="minecell">&nbsp; </td> <td id="c2:3" onclick="lClick('2:3')" oncontextmenu="return rClick('2:3')" class="minecell">&nbsp; </td> <td id="c2:4" onclick="lClick('2:4')" oncontextmenu="return rClick('2:4')" class="minecell">&nbsp; </td> <td id="c2:5" onclick="lClick('2:5')" oncontextmenu="return rClick('2:5')" class="minecell">&nbsp; </td> <td id="c2:6" onclick="lClick('2:6')" oncontextmenu="return rClick('2:6')" class="minecell">&nbsp; </td> <td id="c2:7" onclick="lClick('2:7')" oncontextmenu="return rClick('2:7')" class="minecell">&nbsp; </td> <td id="c2:8" onclick="lClick('2:8')" oncontextmenu="return rClick('2:8')" class="minecell">&nbsp; </td> </tr> <tr> <td id="c3:0" onclick="lClick('3:0')" oncontextmenu="return rClick('3:0')" class="minecell">&nbsp; </td> <td id="c3:1" onclick="lClick('3:1')" oncontextmenu="return rClick('3:1')" class="minecell">&nbsp; </td> <td id="c3:2" onclick="lClick('3:2')" oncontextmenu="return rClick('3:2')" class="minecell">&nbsp; </td> <td id="c3:3" onclick="lClick('3:3')" oncontextmenu="return rClick('3:3')" class="minecell">&nbsp; </td> <td id="c3:4" onclick="lClick('3:4')" oncontextmenu="return rClick('3:4')" class="minecell">&nbsp; </td> <td id="c3:5" onclick="lClick('3:5')" oncontextmenu="return rClick('3:5')" class="minecell">&nbsp; </td> <td id="c3:6" onclick="lClick('3:6')" oncontextmenu="return rClick('3:6')" class="minecell">&nbsp; </td> <td id="c3:7" onclick="lClick('3:7')" oncontextmenu="return rClick('3:7')" class="minecell">&nbsp; </td> <td id="c3:8" onclick="lClick('3:8')" oncontextmenu="return rClick('3:8')" class="minecell">&nbsp; </td> </tr> <tr> <td id="c4:0" onclick="lClick('4:0')" oncontextmenu="return rClick('4:0')" class="minecell">&nbsp; </td> <td id="c4:1" onclick="lClick('4:1')" oncontextmenu="return rClick('4:1')" class="minecell">&nbsp; </td> <td id="c4:2" onclick="lClick('4:2')" oncontextmenu="return rClick('4:2')" class="minecell">&nbsp; </td> <td id="c4:3" onclick="lClick('4:3')" oncontextmenu="return rClick('4:3')" class="minecell">&nbsp; </td> <td id="c4:4" onclick="lClick('4:4')" oncontextmenu="return rClick('4:4')" class="minecell">&nbsp; </td> <td id="c4:5" onclick="lClick('4:5')" oncontextmenu="return rClick('4:5')" class="minecell">&nbsp; </td> <td id="c4:6" onclick="lClick('4:6')" oncontextmenu="return rClick('4:6')" class="minecell">&nbsp; </td> <td id="c4:7" onclick="lClick('4:7')" oncontextmenu="return rClick('4:7')" class="minecell">&nbsp; </td> <td id="c4:8" onclick="lClick('4:8')" oncontextmenu="return rClick('4:8')" class="minecell">&nbsp; </td> </tr> <tr> <td id="c5:0" onclick="lClick('5:0')" oncontextmenu="return rClick('5:0')" class="minecell">&nbsp; </td> <td id="c5:1" onclick="lClick('5:1')" oncontextmenu="return rClick('5:1')" class="minecell">&nbsp; </td> <td id="c5:2" onclick="lClick('5:2')" oncontextmenu="return rClick('5:2')" class="minecell">&nbsp; </td> <td id="c5:3" onclick="lClick('5:3')" oncontextmenu="return rClick('5:3')" class="minecell">&nbsp; </td> <td id="c5:4" onclick="lClick('5:4')" oncontextmenu="return rClick('5:4')" class="minecell">&nbsp; </td> <td id="c5:5" onclick="lClick('5:5')" oncontextmenu="return rClick('5:5')" class="minecell">&nbsp; </td> <td id="c5:6" onclick="lClick('5:6')" oncontextmenu="return rClick('5:6')" class="minecell">&nbsp; </td> <td id="c5:7" onclick="lClick('5:7')" oncontextmenu="return rClick('5:7')" class="minecell">&nbsp; </td> <td id="c5:8" onclick="lClick('5:8')" oncontextmenu="return rClick('5:8')" class="minecell">&nbsp; </td> </tr> <tr> <td id="c6:0" onclick="lClick('6:0')" oncontextmenu="return rClick('6:0')" class="minecell">&nbsp; </td> <td id="c6:1" onclick="lClick('6:1')" oncontextmenu="return rClick('6:1')" class="minecell">&nbsp; </td> <td id="c6:2" onclick="lClick('6:2')" oncontextmenu="return rClick('6:2')" class="minecell">&nbsp; </td> <td id="c6:3" onclick="lClick('6:3')" oncontextmenu="return rClick('6:3')" class="minecell">&nbsp; </td> <td id="c6:4" onclick="lClick('6:4')" oncontextmenu="return rClick('6:4')" class="minecell">&nbsp; </td> <td id="c6:5" onclick="lClick('6:5')" oncontextmenu="return rClick('6:5')" class="minecell">&nbsp; </td> <td id="c6:6" onclick="lClick('6:6')" oncontextmenu="return rClick('6:6')" class="minecell">&nbsp; </td> <td id="c6:7" onclick="lClick('6:7')" oncontextmenu="return rClick('6:7')" class="minecell">&nbsp; </td> <td id="c6:8" onclick="lClick('6:8')" oncontextmenu="return rClick('6:8')" class="minecell">&nbsp; </td> </tr> <tr> <td id="c7:0" onclick="lClick('7:0')" oncontextmenu="return rClick('7:0')" class="minecell">&nbsp; </td> <td id="c7:1" onclick="lClick('7:1')" oncontextmenu="return rClick('7:1')" class="minecell">&nbsp; </td> <td id="c7:2" onclick="lClick('7:2')" oncontextmenu="return rClick('7:2')" class="minecell">&nbsp; </td> <td id="c7:3" onclick="lClick('7:3')" oncontextmenu="return rClick('7:3')" class="minecell">&nbsp; </td> <td id="c7:4" onclick="lClick('7:4')" oncontextmenu="return rClick('7:4')" class="minecell">&nbsp; </td> <td id="c7:5" onclick="lClick('7:5')" oncontextmenu="return rClick('7:5')" class="minecell">&nbsp; </td> <td id="c7:6" onclick="lClick('7:6')" oncontextmenu="return rClick('7:6')" class="minecell">&nbsp; </td> <td id="c7:7" onclick="lClick('7:7')" oncontextmenu="return rClick('7:7')" class="minecell">&nbsp; </td> <td id="c7:8" onclick="lClick('7:8')" oncontextmenu="return rClick('7:8')" class="minecell">&nbsp; </td> </tr> <tr> <td id="c8:0" onclick="lClick('8:0')" oncontextmenu="return rClick('8:0')" class="minecell">&nbsp; </td> <td id="c8:1" onclick="lClick('8:1')" oncontextmenu="return rClick('8:1')" class="minecell">&nbsp; </td> <td id="c8:2" onclick="lClick('8:2')" oncontextmenu="return rClick('8:2')" class="minecell">&nbsp; </td> <td id="c8:3" onclick="lClick('8:3')" oncontextmenu="return rClick('8:3')" class="minecell">&nbsp; </td> <td id="c8:4" onclick="lClick('8:4')" oncontextmenu="return rClick('8:4')" class="minecell">&nbsp; </td> <td id="c8:5" onclick="lClick('8:5')" oncontextmenu="return rClick('8:5')" class="minecell">&nbsp; </td> <td id="c8:6" onclick="lClick('8:6')" oncontextmenu="return rClick('8:6')" class="minecell">&nbsp; </td> <td id="c8:7" onclick="lClick('8:7')" oncontextmenu="return rClick('8:7')" class="minecell">&nbsp; </td> <td id="c8:8" onclick="lClick('8:8')" oncontextmenu="return rClick('8:8')" class="minecell">&nbsp; </td> </tr> </table> </div> </div> </body> </html>