Skip to content

xaviershay/dominion-solitaire

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

= Dominion Solitaire
An ncurses Dominion implementation with a focus on lightning quick goldfishing. 
You play cards by typing their name with smart autocomplete.
Only the base set is implemented currently.
There's still a few rough edges (don't press the arrow keys, don't buy all of a card)

== Running

I haven't totally automated some ncurses stuff yet - you may need the following env settings to get things working:

    ls /usr/lib/ | grep libncurses         # Find your libncurses .dylib
    export RUBY_FFI_NCURSES_LIB=libncurses # Tell ffi-ncurses to use the right one

    rake run

== The Code

The code is stylistically a bit different from typical ruby code. It is mostly done in a very functional style, so there are a lot of lambdas. The core game logic is in +dominion/game.rb+, and that is a good place to start reading. All UI is abstracted out into +dominion/ui/ncurses/engine.rb+, allowing for a headless mode for testing, and other pluggable UIs in the future. Each card is implemented in its own file in +dominion/cards+, and they are all well specced. (In contrast, the specs for the game logic and ui were retrofitted later and are not as thorough.)

== Extras

To play a specific board, create a text file with one card name per line:

  Chapel
  Smithy

Then launch the code as such:

  ruby lib/run.rb chapel_smithy_board.txt

About

An ncurses Dominion implementation with a focus on lightning quick goldfishing.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages