Skip to main content

A cli-based word game

Project description

Introduction

Subset is an in-CLI word guessing game about finding pangrams. A pangram is a word or phrase that uses every letter from a given (and in this case limited) alphabet (as in a set of letters, not as in A-Z).

Installation

Subset requires Python 3.5 onwards and uses the colorama package. It runs on Linux, should run on macOS, and theoretically runs on Windows.

Through Pip

Just run sudo pip install subset. Then run subset in a terminal. As of right now, a terminal width of at least 80 characters is required. (I intend to fix this, but it looks good at 80 and that is a standard size, so I won't adjust the scaling until I have time to do it properly)

From Source

  1. Clone this repository
  2. cd subset-game
  3. pip install .
  4. subset

Sans-Installation

  1. Clone this repository
  2. cd subset-game/subset/
  3. python app.py

The Rules

Each game, the player is given seven letters. One letter is highlighted. The player must find as many words as they can that use some or all of the letters. The restrictions are:

  • The word must be four or more letters long
  • The highlighted letter must be used in every word
  • The words are never proper nouns

Not all the letters need to be used per word, and letters can be reused within a word. If the player inputs a word that uses every letter, it is called a 'pangram' and is worth extra points.

Do not expect to get a perfect score without cheating! The puzzles are randomly generated and I've seen some pangrams with over a thousand related words.

Features & Roadmap

So far I have implemented:

  • The basic game as described above
  • A savefile stored in ~/.subset

Features I may add:

  • Dynamic terminal sizing
  • Multiple savefiles at once
  • Difficulty selection (this is tricky because its very difficult to qualitatively analyze the difficulty of a puzzle. Puzzles with fewer words are harder to score on, but easier to get a higher fraction of the total score, and so on)
  • Dictionary selection (right now, if you find the dictionary file in your Python modules folder, or if you are running straight from the cloned folder, you can replace dictionary.txt with your own file and the game will run just fine, but be aware that it throws out capitalized words and words containing anything other than letters)
  • Colourschemes

The Dictionary

The game uses the SCOWL English words dictionary sections 10 though 70. Licenses for the wordlists can be found in DICTIONARY_LICENSE.

License

This software is licensed under the MIT license, the text of which can be found in the LICENCE file.

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

subset-0.1.0.tar.gz (411.6 kB view details)

Uploaded Source

Built Distribution

subset-0.1.0-py3-none-any.whl (410.6 kB view details)

Uploaded Python 3

File details

Details for the file subset-0.1.0.tar.gz.

File metadata

  • Download URL: subset-0.1.0.tar.gz
  • Upload date:
  • Size: 411.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.3.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for subset-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ab18776f48422ae34656449f7c8494e55674c23872fd8b0b19e5cf9ca8db0b7d
MD5 4690d327ca45d9ae5f252c71a1550190
BLAKE2b-256 659bea69e91fe8f737f7b65950e68ca638aed5aff00659941856dac67368b7c1

See more details on using hashes here.

File details

Details for the file subset-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: subset-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 410.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.3.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for subset-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0bf9ff4acff20274d79449b8d121e5261325935ce4c7db5197a9e99dd880baea
MD5 35f343d94178ce71e14b20e0bf064ffd
BLAKE2b-256 ec0d65aacd2998d029401f1f125805e005f012c2d309a6264eea315842f8cf9c

See more details on using hashes here.

Supported by

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