Skip to main content

Python Risk engine with assorted player interfaces.

Project description

PyRisk

This is a Python engine and interface for building games similar to the 1957 La Conquête du Monde by Albert Lamorisse (of “Le Ballon rouge / The Red Balloon” fame). The game is perhaps better known as Risk, and is produced by Parker Brothers (now a division of Hasbro).

Benefits over other open source implementations:

  • simple, extensible implementation

  • play-by-email

Getting PyRisk

PyRisk is available as a Git repository:

$ git clone git://tremily.us/pyrisk.git

The most recent commit is also available as a gzipped tarball at:

http://git.tremily.us/?p=pyrisk.git;a=snapshot;h=HEAD;sf=tgz

Once you get the source, installation is via Docutils:

pyrisk$ python setup.py build
pyrisk$ python setup.py install

Getting started

To setup play-by-email, you’ll have to have some method to redirect appropriate messages into a named pipe. With procmail, that will look something like:

:0
* ^Subject:.*\[PyRisk.*
{
  :0 wc
  /path/to/named/pipe

  :0
  | /bin/echo -e '\000' >> /path/to/named/pipe
}

The echo command appends a NULL byte to the FIFO, which (I think), helps the read() in _get_msg break at the appropriate point.

Once you have the procmail rule setup, just add your EmailPlayers to your game and go:

from pyrisk.base import generate_earth, Player, Engine
from pyrisk.player.email import IncomingEmailDispatcher, \
    OutgoingEmailDispatcher, EmailPlayer
from pyrisk.graphics import WorldRenderer
world = generate_earth()
ied = IncomingEmailDispatcher(fifo_path='/tmp/pyrisk.in')
oed = OutgoingEmailDispatcher(return_address='server@example.com')
wr = WorldRenderer()
players = [EmailPlayer('Alice', 'alice@big.edu', ied, oed, wr),
           EmailPlayer('Bob', 'bob@fish.net', ied, oed, wr),
           Player('Charlie')]
e = Engine(world, players)
e.run()
ied.close()

Project details


Release history Release notifications | RSS feed

This version

0.1

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page