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

Code Example

A short demo showcasing all features of the emojiguessr package can be found here: https://github.com/swe-students-fall2025/3-python-package-team_saffron/blob/main/src/examples/demo.py

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.3.1.tar.gz (24.3 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.3.1-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for emojiguessr-1.3.1.tar.gz
Algorithm Hash digest
SHA256 6b3777e7061a639e7fbcdff68c9ca726b70e02401836870784c7cd6a86c7d976
MD5 48524188d543bbfa309992f0e129a826
BLAKE2b-256 007d568765252951ed35faf9f7bbc7b2245abc74341ed1f5f38b2c62c3a9a7a8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: emojiguessr-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 21.1 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.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f0cf581e3ddf1d8d7f304192b400498e506125700fb5b63792662426e32201af
MD5 fa62aae760371ac4305387e479e708b0
BLAKE2b-256 2fed38264070b8a60c21f747f0aa189a6117c72756ceed662e7052a8556e5113

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