Skip to main content

A tiny emoji guessing game

Project description

EmojiGuessr

Link to PyPI: Emojiguessr

EmojiGuessr is a Python package that turns emoji strings into quick guessing games. Pick a theme, get an emoji clue and guess the name!

Features

  • Multiple Themes: Choose from 7 different themes including food, animals, movies, games, cities, feelings, and dev
  • Customizable Difficulty: Adjust the number of questions, attempts per question, and matching rules
  • Flexible Matching: Support for partial matches and case-sensitive/insensitive answers
  • Easy CLI: Simple command-line interface with helpful flags and options

Team Members

Jason Liu

David Shen

Leon Lian

member4

member5

Installation

  1. Create a pipenv-managed virtual environment and install the latest version: pipenv install -i https://test.pypi.org/simple/emojiguessr. (Note that if you've previously created a pipenv virtual environment in the same directory, you may have to delete the old one first. Find out where it is located with the pipenv --venv command.)
  2. Activate the virtual environment: pipenv shell.
  3. Create a Python program file that imports the package and uses it, e.g. from emojiguessr import quiz and then print(quiz.make_quiz_item()).
  4. Run the program: python3 my_program_filename.py.
  5. Exit the virtual environment: exit.

Try running the package directly:

  1. Create and activate up the pipenv virtual environment as before.
  2. Run the package directly from the command line: python3 -m emojiguessr. This should run the code in the __main__.py file.
  3. Exit the virtual environment.

From Test PyPI

pipenv install -i https://test.pypi.org/simple/emojiguessr

From Source

git clone https://github.com/swe-students-fall2025/3-python-package-team_saffron.git
cd 3-python-package-team_saffron
pipenv install -e .

Usage

Basic Usage

Run the game with default settings (3 questions, food theme):

pipenv run emojiguessr

Advanced Usage

Choose a different theme:

pipenv run emojiguessr --theme animals

Customize the number of questions:

pipenv run emojiguessr -n 5

Allow multiple attempts per question:

pipenv run emojiguessr --max-attempts 3

Enable case-sensitive matching:

pipenv run emojiguessr --case-sensitive

Disable partial matches (require exact answers):

pipenv run emojiguessr --no-partial

Combine multiple options:

pipenv run emojiguessr -t movies -n 10 -a 2

Available Themes

You can list all available themes using:

pipenv run emojiguessr --list-themes

Current themes include:

  • food - Pizza, sushi, burger, and more
  • animals - Dog, cat, panda, lion, etc.
  • movies - Famous movies represented by emojis
  • games - Various types of games
  • cities - World cities
  • feelings - Different emotions
  • dev - Programming and development concepts

Command Reference

List of flags you can add to customize the behavior of emojiguessr

Available commands:
  --num-questions, -n    : Number of questions to ask (default: 3)
  --theme, -t            : Emoji theme to use (default: food)
  --case-sensitive       : Make answers case-sensitive (default: off)
  --no-partial           : Disable partial matches
  --max-attempts, -a     : Maximum number of attempts per question (default: 1)
  --list-themes, -lt     : List available themes and exit
  --list-commands, -lc   : List available commands and exit

Develop and Contribute

Local build & run (using pipenv)

  1. Get pipenv installed
  2. cd into the project directory
  3. Install dependencies: pipenv install
  4. Install the package in editable mode: pipenv install -e .
  5. Run the command line interface: pipenv run emojiguessr followed by flags and configurations

Project Structure

.github/
  workflows/
    build.yaml
    deliver.yaml
    event-logger.yml
    Pipfile
    Pipfile.lock
    requirements.txt
  note.txt
src/
  emojiguessr/
    __init__.py
    __main__.py
    data.py
    quiz.py
    score.py
tests/
  __init__.py
  test_data.py
examples/
  demo.py
pyproject.toml
Pipfile
Pipfile.lock
LICENSE
README.md
instructions.md
.gitignore

Testing

Testing is implemented with pytest and runs automatically on every pull request. If you wish to run tests locally anytime, simply run

pytest -v

if you have pytest installed through pipenv, do

pipenv run pytest -v

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests to ensure everything works
  5. Commit your changes (git commit -m 'Add some amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.

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

emojiguessr-1.1.1.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

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

emojiguessr-1.1.1-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file emojiguessr-1.1.1.tar.gz.

File metadata

  • Download URL: emojiguessr-1.1.1.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for emojiguessr-1.1.1.tar.gz
Algorithm Hash digest
SHA256 fada090c580a1858eae2c384d793a75f9b31f6207ebc93443a583ff923c4dcfd
MD5 a72a88b944eca2e81cdef8e45068e01d
BLAKE2b-256 ac0a8ca9ec143c33b5075d4805f162f1af2978fa3b53b1fc68c9a607dd581eef

See more details on using hashes here.

File details

Details for the file emojiguessr-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: emojiguessr-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for emojiguessr-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0c29675fb4cc11b37dbf61d508ff58e7d4eb95e4bd463e4c8eb43561d4e489a3
MD5 510d20525c33343bd035ef97b7cae568
BLAKE2b-256 8fc812bba6107dd605bcf513ec65652f0baa3c319a607787336ad9926e9dd422

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