Giter VIP home page Giter VIP logo

minesweeper's Introduction

minesweeper's People

Contributors

danielricci avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

besongsamuel

minesweeper's Issues

Menu

Create the menu system. This task might make sense to be done after any new changes come to the menu infrastructure

image
image

Gather requirements and populate tasks

Gather requirements. Create a document for how minesweeper works, do some research on this topic. Create a list of features that are to be implemented

First Move

The first click is always safe and reveals a number or an opening surrounded by numbers

Debugger option: Highlight flood fill

This option should be in the debug menu, and it should be a mutually exclusive checkbox within the same group as the "Show Neighbours" debug option

Debugger

The debugger should create a game board that gives the following.

  • The menu option should give you the ability to toggle the visibility of buttons over the cells of the game
  • The menu option should give you the ability to click a checkbox and be able to then place mines on a cell
  • There needs to be a clear button that clears all the mines and all the numerals from the board

Create shell of the game

Create the basics of the game, include the gosling engine, make sure that it loads up with the current engine changes

Marks

When selecting on the marks menu items, you should now be able to mark question marks onto tiles.

End Game

The game ends when all the tiles that do not contain a mine are no longer available to be selected.

Top Board

The top of the game should contain

  1. The number of flags remaining
  2. A game status button (smiley faces) and when clicked should restart the game
  3. The number of seconds that has elapsed

Flag Counter

On the board, the left-most counter will the number of mines on the board. Flagging a tile will reduce this number by one (1). This number can go into the negatives.

Clicking on a tile (Mine)

Clicking on a tile mine will cause all tiles with a mine to be shown. The clicked tile will have a background of red. All tiles that have a flag that is invalid will have a mine x'd out. All tiles that have a mine, but have a proper flag, will remain as is and will not be exposed

image

Board Generation

When the game is loaded, the board gets generated with mines and properly generated adjacent numerals

Tile Number

The tile should show a number that indicates how many mines touch the square

Best Times

Show a dialog that displays a list of high scores. This should be saved within the configuration file.

Board Difficulty

Beginner board has 10 mines at 8 x 8
Intermediate board has 40 mines at 16 x 16
Expert board has 99 mines at 30 x 16

Debug buttons on tiles

In the debugger, there needs to be a way to show/hide the buttons on all of the tiles

Configuration File

When the game runs, it looks for a config.ini file that contains all the settings.

image

Chording

When an uncovered square with a number has exactly the correct number of adjacent squares flagged, performing a click with both mouse buttons on it will uncover all unmarked squares; This is called a Chord.

It is a basic technique that allows players to clear squares using flags, and the reason why flagging styles are often more efficient than non-flagging ones.

Using the middle mouse button will also cause a chord.

Setting a flag on a tile doesn't let you win the game

  1. Create a custom game, 30x30 with 1 mine
  2. Put a flag on any single tile
  3. Play the game and uncover all the tiles except for the flagged one
  4. Remove the flag
  5. Click the tile
  6. Notice that the game doesn't end despite the fact that there are no more tiles left to uncover

Custom Board Difficulty

When clicking on the custom board difficulty, it should stay checked, and clicking it again should remain checked. Every time it is clicked, the dialog should open.

image

These are the following conditions:

  • 1 < Height < ??
  • 1 < Width < ??
  • 0 < Mines < (Height x Width)

Flags

Right-Clicking on a tile should put a flag on the tile, and decrement the available number of flags remaining

Timer counter

Upon clicking on the tile, start a seconds timer. This is what is shown in the top-right most counter

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.