Git Product home page Git Product logo

minesweeper's Introduction

Minesweeper

We are going to try to replicate a game named minesweeper with Java. For more information about our group project can be found here: Google Docs Link

Issues

We use the issue tracker on GitHub. Keep in mind that everyone who is watching the repository gets notified by e-mail when there is activity, so be thoughtful and avoid writing comments that aren't meaningful for an issue (e.g. "+1").

Team

minesweeper's People

Contributors

robpot95 avatar miguelmalungo avatar markopaunovic1 avatar marlongarciabermejo avatar mouhammadazroun avatar

Watchers

 avatar

minesweeper's Issues

Placing mines functionallity

Explanation of what you want to do that is currently impossible

The board does not place any mines

Desired functionality

The board should place mines on random Tiles

Counter does not restart

Describe the bug
The counter does not reset the time

To Reproduce
Play a game and then play again, the counter counts up

Expected behavior
Counter should reset the time

Be able to select how many mines

Explanation of what you want to do that is currently impossible

The user should be able to write how many mines they want

Desired functionality

The board should place mines based on the user selection. If they are not writing how many mines they want, it should go back to default amount of mines. E.g 5x5 board 10% mines

Nearby mines

Explanation of what you want to do that is currently impossible

When opening a Tile and there is a mine near, it does not tell the user if there is anything near the tile

Desired functionality

It should tell the user how many mines are near the tile

Improve show board method

Explanation of what you want to do that is currently impossible

The show method is bit limited for the user, to see where to open a Tile

Desired functionality

It should show the cordinates X, Y axis with number included. Something similar to this:

                 Y   1  2  3  4  5  6                       
                  +-------------------+                    
                a |   |  |  |  |  |   |                    
                  ----|--|--|--|--|----                    
                b |   |  |  |  |  |   |                    
                  ----|--|--|--|--|----                    
                c |   |  |  |  |  |   |                    
                  ----|--|--|--|--|----                    
                d |   |  |  |  |  |   |                    
                 -----|--|--|--|--|----                    
                e |   |  |  |  |  |   |                    
                  ----|--|--|--|--|----                    
                f |   |  |  |  |  |   |                    
                  +-------------------+ X            

Base Structure

Overview

Minesweeper is single-player logic-based computer game played on rectangular board whose object is to locate a predetermined number of randomly-placed "mines" in the shortest possible time by clicking on "safe" squares while avoiding the squares with mines. If the player clicks on a mine, the game ends.

Classes

  • Game
    • Game logic
    • Game loop
    • Game state
  • Board
    • Two dimensional array (holding Tile class)
    • Create board
    • Display the board
    • Logic of getting the surroundings
  • Tile
    • Tile state enum (NONE, REVEALED, MINE, FLAGGED)
    • Getters/Setters
  • Player
    • Name
    • Wins

Be able to open a Tile & Place a flag

Explanation of what you want to do that is currently impossible

There is no way currently to open a tile and place a flag

Desired functionality

User should be able to open a Tile or place a flag

Features

  • Dynamic playfield (User can choose how big the board is) or introduce levels (prebuilt)
  • Reveal how many tiles got a bomb
  • Timer
  • reveal 0 its adjacent tiles. For every adjacent tile, if that tile is 0, reveal that tiles adjacent tiles. and so on until all adjacent tiles of every connected 0 is revealed.
  • Flag feature, be able to flag the tile

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.