github
Advanced Search
  • Home
  • Pricing and Signup
  • Explore GitHub
  • Blog
  • Login

masak / druid

  • Admin
  • Watch Unwatch
  • Fork
  • Your Fork
  • Pull Request
  • Download Source
    • 10
    • 1
  • Source
  • Commits
  • Network (1)
  • Issues (0)
  • Downloads (0)
  • Wiki (1)
  • Graphs
  • Branch: master

click here to add a description

click here to add a homepage

  • Branches (2)
    • master ✓
    • shorty
  • Tags (0)
Sending Request…
Enable Donations

Pledgie Donations

Once activated, we'll place the following badge in your repository's detail box:
Pledgie_example
This service is courtesy of Pledgie.

A connection-oriented board game written in Perl 6 — Read more

  cancel

  cancel
  • Private
  • Read-Only
  • HTTP Read-Only

This URL has Read+Write access

[README] one more plan 
masak (author)
Sat Oct 24 01:28:01 -0700 2009
commit  2c02e2a26a5fff6ec1d2f47b2c28d7ad2435e359
tree    fa1b19d91da90f85b8139aea38716fd46d7aac1e
parent  3480edc1c9010cffbc11d0c427268d1281779acb
druid /
name age
history
message
file .gitignore Thu Jan 29 07:29:28 -0800 2009 enabled build of the modules in lib/ [masak]
file Configure Mon Apr 06 01:22:50 -0700 2009 renamed {c -> C}onfigure After a discussion wi... [masak]
file LICENSE Mon Dec 22 04:06:05 -0800 2008 added README and LICENSE [masak]
file Makefile.in Sun Apr 12 14:49:04 -0700 2009 [Druid::Webapp] factored out web app logic [masak]
file README Sat Oct 24 01:28:01 -0700 2009 [README] one more plan [masak]
directory bin/ Sun Sep 06 14:38:43 -0700 2009 [web-druid] changed to use the new simple regim... [masak]
file deps.proto Sun Apr 12 02:50:39 -0700 2009 [bin/web-druid] early web app You can't make m... [masak]
file druid Sat Apr 04 09:58:07 -0700 2009 great underscore-to-dash replacement [masak]
directory lib/ Mon Oct 12 07:53:35 -0700 2009 [Druid::Webapp] allowed game restart [masak]
directory t/ Thu Apr 02 14:44:16 -0700 2009 wrote thirtieth test; passes right away [masak]
README
Druid is a connection-oriented board game created by Cameron Browne.

Rules and a bit of strategy can be found at
<http://www.cameronius.com/games/druid/>.

Instructions on getting Druid running:

* Get Rakudo.
* Set some environment variables.
* Call 'perl6 druid'.

There's also a an installer called 'proto' that you can use to install druid;
see 'Installing via proto' below.

== Get Rakudo

You need Rakudo to run the Perl 6 code in Druid -- instructions
here: <http://www.perlfoundation.org/perl6/index.cgi?rakudo>.

== Set some environment variables

Put something like this in your ~/.bash_profile analogue:

 export PERL6LIB=/your/path/to/druid/lib
 export PARROT_DIR=/your/path/to/parrot
 alias perl6="$PARROT_DIR/languages/perl6/perl6"

Remember to start a new bash process (terminal window, tab, whatever) or to
re-source ~/.bash_profile:

% . ~/.bash_profile

== Call 'perl6 druid'

Yup, you're ready to go.

% perl6 druid
% perl6 druid --size=10 --computer=1
% perl6 druid --help

== For those who want to compile things

(After all, compilation does make startup a little faster.)

% perl6 configure
% make

Remember that you still need to set $PERL6LIB and $PARROT_DIR as above. The
configure script will complain if you don't.

== Installing via proto

Proto is a no-fuss installer of Perl 6 projects. One of the advantages of this
way of installing Druid is that if you don't already have Rakudo Perl 6, proto
installs it for you.

1. Get proto from <https://github.com/masak/proto>
2. Run './proto' and optionally review the settings in the created config file
3. Run './proto install druid'
4. 'export PERL6LIB=`pwd`/projects/druid/lib'
5. 'cd projects/druid'

...and you're ready to run. See "Call 'perl6 druid'" above.

== Future plans

* Add an SVG renderer.

* Work on the machine play. (It's currently random, but I have some fairly
  nice ideas lying around in a local branch.)

* Put in a few optimizations to make Druid::Game::possible-moves O(1)
  instad of O($n**2) ($n being the size of the board), as it is presently.
  In another language, the difference might not actually be noticeable, but
  Rakudo Perl 6 is very "speed-sensitive" right now.

* Make the web app do POST requests instead of GET requests. This is more in
  line with the idea of making a move, a non-idempotent action.

* Make the web app handle different simultaneous games, played by distinct
  users. This will likely require a real databse instead of the short-term
  file solution used now.

== License

This Druid implementation is released under Artistic 2.0. See LICENSE.
Permission to release the game graciously given by the game author.
Blog | Support | Training | Contact | API | Status | Twitter | Help | Security
© 2010 GitHub Inc. All rights reserved. | Terms of Service | Privacy Policy
Powered by the Dedicated Servers and
Cloud Computing of Rackspace Hosting®
Dedicated Server