jQuery - Mijnenveger

Het maken van het spel Mijnenveger staat al jaren op mijn TODO lijst, in eerste instantie wilde ik dit in JAVA programmeren met gebruik van de Swing GUI, maar tegenwoordig ben ik meer bezig met jQuery dus is dat weer een leuke uitdaging.

Met jQuery kan je voor elk veld een Click Event toevoegen, je hebt dus kortgezegd slechts een speelveld nodig en een algoritme.


Algoritme

Bij mijnenveger klik je een willekeurig veld open, hopen dat je niet meteen op een mijn klikt en vervolgens wordt er naar de omliggende velden gekeken (neighbours). Het totaal aantal mijnen wordt dan afgebeeld als het getal 1 t/m 8.

velden en buren

Een veld hoeft niet altijd acht omliggende velden (neighbours) te hebben, bijvoorbeeld de bovenste rij heeft geen boven buren en de onderste rij heeft geen onderburen. De eerste kolom heeft geen linker buren en de laatste kolom heeft geen rechter buren. Het controleren of je te maken hebt met de eerste of laatste kolom kan met modulo:

modulo

Als je denkt te weten waar een mijn zit kan je dit met de rechtermuis knop aangeven door een vlag te plaatsen. Een probleem, de browser toont een Context menu. Zie het artikel Uitschakelen van Context menu.


Resultaat

Mijnenveger


TODO
  • Bug: Er starten meerdere timers bij reset/refresh;
  • Bug: Veld met getal wordt niet vervangen door een vlag;
  • Feature: Algoritme om lege velden te openen (recursief);
  • Feature: Meerdere spelniveau's (gevorderd, expert).

Demo

Mijnenveger


Download

mijnenveger.zip (328 KB)