Skip to content

hojahoja/Gem-Poacher

Repository files navigation

Gem Poacher

A simple game where you move the mouse to collect gems while avoiding hostile monsters on the screen. The idea is based on Jewel Thief.

A retro review of Jewel Thief by LazyGameReviews:

IMAGE ALT TEXT HERE

Release

GitHub release

Documentation

User Manual
Requirements Specification
Architecture
Testing Documentation
Changelog
Work Time Log

Python Version

This game has been tested with Python version 3.12

Command line

Run these commands inside powershell or preferred linux shell.
Poetry has to be installed for these to work

Install dependencies

poetry install

Run the game

poetry run invoke start

Testing

poetry run invoke test

Check coverage

Get a coverage report inside the terminal with:

poetry run invoke coverage

Coverage report

Generate a html report with:

poetry run invoke coverage-report

Linter

Run pylint for the src folder with:

poetry run invoke lint

Config

This will recreate the default config.ini file inside src/config/

poetry run invoke create-config

Database

This will create or recreate the database listed in the config. A new config will be created if it doesn't already exist and the database will use the default name.

Caution

Running this command on an already existing and initialized database will wipe it clean.
Only run this command if you want to clear you current database or create a new one.

poetry run invoke create-database

Building binaries

These commands should be run on a freshly cloned repository so that pyinstaller won't bundle any unnecessary dependencies.

These are for building a runnable binary. The filetype will be different. whether these commands are run on Linux or Windows (.exe)

Install the poetry environment using:

poetry install --without dev

Then run:

poetry run invoke build-binary

Information about the original version

This game was originally my final submission for the Python programming mooc 2023.

My idea is to rewrite the game with a more sensible structure, documentation and testing that will follow the guidelines and standards set by this course. I also want to develop it further with more features than in the original.

Code of the original version