Giter Site home page Giter Site logo

ghost's Introduction

๐Ÿ‘ป ghost ๐Ÿ‘ป

Python engine for the word game of ghost (as played on epicmafia). Implemented using a finite state machine style.

๐Ÿงจ Usage

To build games using this engine, run:

pip3 install ghost_word_game

import ghost

Example:

# Create engine, which can manage multiple games
ge = ghost.GhostEngine()

gid = 1129837
host = 'jermyn'

create_game(ge, gid, host, VALID_PLAYERS, VALID_TW, VALID_FW)

# Retrieve the generated roles, then you need to inform players of their roles
roles = ge.get_player_roles(gid)

# Players now give clues on their words. 
# All players need to give clues so loop this for the number of players in the game.
p = ge.get_next_in_player_order(gid)
is_complete = ge.set_clue(gid, p, 'example clue ' + p)

# Retrieve all clues given by all users
clues = ge.get_all_clues(gid)

# Once the clues are given, players can vote
is_success, is_complete, lynched = ge.set_vote(gid, p, players[0])

# When all players have voted, the engine will delete the lynched player
# Depending on that player's role, the game state changes to 
# GUESS_ROUND (ghost lynched), VOTE_ROUND (town lynched) or WINNER_GHOST (town lynched into ghost majority)
state = ge.get_game_state(gid)

# allow the ghost to guess
if state == ghost.States.GUESS_ROUND:
    is_success, is_correct = ge.make_guess(gid, lynched, VALID_TW)

๐Ÿ”ง Some quick tools

Wrote some shell scripts to make it faster to run tests and upload the package to PyPi.

bash run_tests.sh and upload_pkg.sh can be used. Remember to do the relevant config in setup.py before uplaoding to PyPi.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.