Skip to main content

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

Project description

rock-paper-scissors-py

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

Installation

To install, run the following commands:

pip install rock-paper-scissors-py

# or

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.1.tar.gz (5.1 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.1-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rock_paper_scissors_py-0.1.1.tar.gz
  • Upload date:
  • Size: 5.1 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.1.tar.gz
Algorithm Hash digest
SHA256 99e680834cb2ab56da55f95879c1c615055536fa24e55b784dd1e58d11a78198
MD5 a13438f161a3f02c2520a3470c4da4ba
BLAKE2b-256 9980669be67c7ed996557e3d72308e7bb5a7e179aca5afdfdb89cf3aea013e8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rock_paper_scissors_py-0.1.1.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.1-py3-none-any.whl.

File metadata

File hashes

Hashes for rock_paper_scissors_py-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4577daa2a865730efc1e648d24b47e08de1cb1e9510dfbd707d06dacae2737f8
MD5 e48963262ee794426e3d2cc04808d0b4
BLAKE2b-256 e5422c6bfd2d08880e137c90d8447e8039a5579b13342627d58becfb57bbbc13

See more details on using hashes here.

Provenance

The following attestation bundles were made for rock_paper_scissors_py-0.1.1-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