Skip to content

GreysonKrystian/Minesweeper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minesweeper

alt text

Table of contents

Requirements

Project should be build in Python3. Moreover, the project requires modules included in Requirements.txt to build.

Project description

(Back to top)

The project is my implementation of popular classic game minesweeper. More info about game can be found here It was created as one of my university one-person projects in 2020/2021 semestr. The main aim of projects was to learn fundamentals of OOP and Python. Projects is written in Python3 with UI created in QT module for python (PyQt).

Project consists of several main modules:

  • Game
  • Board
  • Classes of game entities
  • Difficulty UI
  • main UI
  • tests

Game - Wrapper for entieties, contains functions responsible for checking if game should end and calculating statistics. Board - Intializes game board with configuration chosen by player. Entities - Classes responsible for managing game entites such as flags, mines etc. Difficulty UI - Qt class that manages starting screen where player chooses difficulty of the game Main UI - Main qt class which displays window with actual game.

Possible future improvements

(Back to top)

It was my first bigger programming project so there are many topics in this project which could be improved. These main topics are:

  • code readability and reusability - the code has some issues when comes to following design priciples. In project we can some violations of DRY principle. Moreover number of indentations in some functions makes code harder to read and debug.
  • not using appropriate python modules - game engine can be improved with Numpy. It will also decrease indentation hell.
  • better UI - The Qt design used in project looks quite primitive and could be improved. Alternative solution is to completly change framework to for example PyGame.
  • create Mobile/Web version of the game.

Screenshots

(Back to top)

MENU:

Screenshot from menu

Screenshot from menu

GAMEPLAY:

Screenshot of gameplay

Screenshot of gameplay

Screenshot of gameplay

License

(Back to top)

The MIT License (MIT) 2022 - Krystian Grela. Please have a look at the LICENSE.md for more details.

About

Python implementation of popular game made with PyQt.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages