Skip to main content

Add your description here

Project description

rock-paper-scissors-py

Multi-player and multi-action Rock, Paper, Scissors game client.

Installation

To install, run the following commands:

git@github.com:jwc20/rock-paper-scissors-py.git
cd rock-paper-scissors-py

To use the engine, first setup and activate a python virtual environment (venv)

python3 -m venv .venv

# or use astral/uv
uv venv --python 3.13


. ./.venv/bin/activate

Install from requirements.txt

pip3 install -r requirements.txt

# or
uv add -r requirements.txt

Usage:

To import, type

import rps

Set the number of actions allowed in the game

action_three = 3 # rock, paper, scissors
action_five = 5 # rock, paper, scissors, Spock, lizard

Set the players with either fixed or random actions

player_jae = rps.FixedActionPlayer("Jae", 0) # always plays Rock, like an idiot

# bunch of random players with random actions
random_player_names = [f"random{i}" for i in range(20)]
random_players = [RandomActionPlayer(name) for name in random_player_names]

Set the game and play

game = rps.Game(random_players, action_three)

game.play()

Example

Run the example.py in the root directory

python example.py

# or

uv run example.py

Note

Game consists of m players and n actions where m >= 2 and n >= 3 and n is an odd number.

Actions are hand gestures played by the players (rock, paper, scissors).

If the number of actions set in the game is between 5 and 15, the game uses the rules made by Sam Kass and David C. Lovelace.


See also:

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

rock_paper_scissors_py-0.1.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

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

rock_paper_scissors_py-0.1.0-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rock_paper_scissors_py-0.1.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for rock_paper_scissors_py-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cffc1277f0e3aadabd94a1eee11c665dd0847d49dc629550753b45920bf9635d
MD5 4f4a21820f638e26037573c692ed51f6
BLAKE2b-256 65517a49da51cb5c134f41cabe2da158159c4e0b90f3bc712f33aa5fb8a8eed8

See more details on using hashes here.

Provenance

The following attestation bundles were made for rock_paper_scissors_py-0.1.0.tar.gz:

Publisher: python-publish.yml on jwc20/rock-paper-scissors-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for rock_paper_scissors_py-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9cc140b57c8bb07bdcd885342e9f02baf1dbac3096be8e52a30707ef15b9e6b0
MD5 779899c842f00e13ff246dd90b6019be
BLAKE2b-256 32847c9c396d7041f3b95da5ad31088fb82c2bb36c57975aa7977c93659e3088

See more details on using hashes here.

Provenance

The following attestation bundles were made for rock_paper_scissors_py-0.1.0-py3-none-any.whl:

Publisher: python-publish.yml on jwc20/rock-paper-scissors-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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