MinesweeperFX is an implementation of the classic Minesweeper game with a twist. It was created as part of the Multimedia Technology class of the School of Electrical and Computer Engineering of the National Technical University of Athens during the academic year 2022-2023.
gkapetanakis - George Kapetanakis (me)
The project was graded with a 10 out of 10.
- Repository Contents
- How is MinesweeperFX different from Minesweeper?
- How does MinesweeperFX work?
- Setup Guide
- Usage Guide
handouts: A folder containing the assignment description inboth English andGreek (for now).src: A folder containing the project's source code, written in Java using Gluon's JavaFX library and Scene Builder tool.build_and_run.sh: Bash script to build and run the applicationcleanup.sh: Bash script to delete class files after building the application
MinesweeperFX allows the user to create configuration files (called 'scenarios') to explicitly set various parameters of the game. These parameters are:
- the available game time,
- the number of mines,
- whether a supermine exists or not.
A supermine acts like a regular mine with the addition that marking it with a flag before performing 4 successful left clicks reveals all tiles on its row and column (disabling any revealed mines).
- The main class (i.e., with the main method) of the application is the
Appclass. - There is a
Settingsclass which contains parameters for the entire application. Each parameter has a comment explaining its function. - Graphics are implemented using an image that functions as a tileset. It is loaded as an
Image, and pieces of it are used independently asImagePatternswhich fillRectangleobjects. The tileset is present in thesrc/resourcesfolder, along with the fontface used by the application. - The Model-View-Controller design pattern is used in several classes as follows: for each class
Class, which functions as a Model, an FXML file namedClassView.fxmlfunctions as its View, and a classClassControllerfunctions as its Controller. The View and the Controller are not visible outside of the packages in which they are located. TheMineandCellclasses are very simple, so they do not require separate View and Controller. - Javadoc comments have been added for the Minesweeper class.
Will be updated soon.
Will be updated soon.