Skip to main content

Python implementation of the fourty-two points game.

Project description

42-Points-Game

42Points Maintainability codecov PyPI PyPI - Python Version PyPI - License

Python implementation of the fourty-two points game.

Introduction

"42 Points" game is a variation based on the popular and long-lived "24 Points" game. The player should only use addition, subtraction, multiplication, division and parentheses and five integers between 0 and 13 (inclusive) to get 42. It's really simple to understand, as the core of the game still relies on math calculations.

Design Logic

This package is designed to work as a core processing part, providing:

  • Problem database
  • Problem generation (by user / in database)
  • Start / stop the game
  • Timer for solutions
  • Player statistics
  • Equivalent solution detection
  • A bunch of APIs and exceptions

This package is not designed to fully implement everything with the game, so the formatting parts should be written by end-users. But don't worry, the API in this package is enough to create whatever you need.

Usage

As equivalent detection is not a easy issue, we will make several changes to make sure it satisfies our need in the following upgrades. Please just kindly use the latest version.

It's recommended to use pip:

    pip install --upgrade 42Points

But building with setup.py will also work, as no other third-party dependencies are required for this package.

After you have installed the package, you are almost done. If you want to try it out quickly, just open your IDLE (or something like that) and type:

    from ftptsgame import FTPtsGame
    app = FTPtsGame() # initialize
    app.generate_problem(problem=[1, 2, 3, 4, 5]) # generate a problem beforehand
    app.start() # start the game
    app.get_current_problem() # show the problem
    app.solve('2 * 4 * 5 + 3 - 1') # put forward a valid solution
    app.get_current_solutions() # show all solutions
    app.get_remaining_solutions() # show remaining solutions
    app.stop() # stop the game

Well, you can integrate this package into your projects by using just the same way, and you can format problems in all the ways you like.

Exceptions

  • PermissionError: Raised during a status check, some methods must be used in the game, while other can't be used.
  • TypeError: Raised when the problem type is not defined.
  • ValueError: Raised when the parameter of generating a problem is invalid, or a user inputs unmatched numbers.
  • OverflowError: Raised when a user input a too long expression. (greater than 30 characters after beautifying)
  • SyntaxError: Raised when a user input an expression which can't be parsed.
  • ArithmeticError: Raised when a user inputs a wrong answer.
  • LookupError: Raised when a user inputs a repeated answer.
  • Other exceptions will be raised when an input fails built-in parameter checks.

License

This package is licensed under the MIT License.

Contribution

Pull requests and issues are warmly welcomed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

42Points-1.2.6.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

42Points-1.2.6-py3-none-any.whl (34.9 kB view details)

Uploaded Python 3

File details

Details for the file 42Points-1.2.6.tar.gz.

File metadata

  • Download URL: 42Points-1.2.6.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.25.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.7.2

File hashes

Hashes for 42Points-1.2.6.tar.gz
Algorithm Hash digest
SHA256 c3810d2c8218ddc9a507160992b61d890d73c3798977e7bdb1735d61d0b961d6
MD5 b66d787cfab71f0c19a8770a616683e5
BLAKE2b-256 0c284c376e3b468d820b658af32cdd36f1e2bca059e7f6dba104f02d18ac9bf6

See more details on using hashes here.

File details

Details for the file 42Points-1.2.6-py3-none-any.whl.

File metadata

  • Download URL: 42Points-1.2.6-py3-none-any.whl
  • Upload date:
  • Size: 34.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.25.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.7.2

File hashes

Hashes for 42Points-1.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 af668008f48509f67ec409389c62629d10b51c7c2f6063c06c1d2a4d7e6890b8
MD5 39ec75114b7a0a93796012c8c8899346
BLAKE2b-256 2b30b6c73fd09b0e739e8fade807126d49e259e79749a46cbdc13bff2b215ec0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page