JavaScript Minesweeper

WebWorker powered Minesweeper game written in JavaScript, HTML and CSS.

Download .zip Download .tar.gz View on GitHub

Minesweeper.js

A WebWorker powered Minesweeper game written in JavaScript, HTML and CSS.

Features:

  • Configurable grid size (X, Y)
  • User can choose difficulty level
  • Configurable number of mines
  • Stopwatch with score keeping (LocalStorage)
  • Stack based grid traversal algorithm for memory efficiency
  • HTML5 web worker (required) will be used to perform the stack algorithm outside of the UI thread
  • Left and right mouse button used simultaneously clears multiple cells

How to use:

Download all the files and open index.html in a modern web browser. Due to Javascript security restrictions with loading external scripts, you must serve it from at least a basic web server. For example, navigate to the directory and run php -S localhost:9797 then open http://localhost:9797/index.html in a browser. Or with Python, run python -m SimpleHTTPServer 9797.

Example HTML usage:

<!-- requires jQuery -->
<h1 class="logo">JavaScript MineSweeper
<div class="invisible ajax-loading"><img src="load.gif" alt="Processing..."/></div>
</h1>
<div id="minesweeper"></div>

<script src="js/MineSweeper.js" type="text/javascript"></script>
<script>
// set a global instance of Minesweeper
minesweeper = new MineSweeper();
minesweeper.init();
</script>

To Do:

  • Add animation and better graphics
  • Enhance UI for a sleek new look

License:

Minesweeper.js is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either **version 3** of the License, or
(at your option) any later version.

Minesweeper.js is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Minesweeper.js. If not, see <http://www.gnu.org/licenses/>.