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
. ./.venv/bin/activate

Install from requirements.txt

pip3 install -r requirements.txt

Usage:

In your Python file, to import, type

import rps

Set the number of actions allowed in the game (beats logic will be generated based on the number of actions)

action_three = 3  # rock, paper, scissors

# => BEATS = {
#        0: [2],  # Rock beats Scissors
#        1: [0],  # Paper beats Rock
#        2: [1],  # Scissors beats Paper
#    }


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

# => BEATS = {
#        0: [2, 3],  # Rock crushes Scissors & Lizard
#        1: [0, 4],  # Paper covers Rock & disproves Spock
#        2: [1, 3],  # Scissors cuts Paper & decapitates Lizard
#        3: [1, 4],  # Lizard eats Paper & poisons Spock
#        4: [0, 2],  # Spock vaporizes Rock & smashes Scissors
#    }

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 = [rps.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

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.4.tar.gz (5.7 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.4-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rock_paper_scissors_py-0.1.4.tar.gz
  • Upload date:
  • Size: 5.7 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.4.tar.gz
Algorithm Hash digest
SHA256 ce025f4059ec845ce0b6fd6ea3ba40c439996ca9d3398ffd2db8a414f0718a1e
MD5 43979dfb67dae2e17b88108a668bde54
BLAKE2b-256 f176f417d4d810dc4e01346c29aee30d71b89e4acd840288d4afc56850206378

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for rock_paper_scissors_py-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ae4c584ea1a25a86ff9e2e22f3d387f70619262f6b18c97f849079715ff9b4d6
MD5 774713e267b4cdf774a862e58f0ddead
BLAKE2b-256 5bd0ce1609c0d75bb2043a5ede94f9956fb9d65814e4a38751ec109b5c95c0c6

See more details on using hashes here.

Provenance

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