9 years agoAdded with EmailPlayer.
W. Trevor King [Fri, 26 Mar 2010 05:46:54 +0000 (01:46 -0400)]
Added with EmailPlayer.

Currently only a text-mode interface (no actual email), but it
supports all the necessary methods.

9 years agoPlayer.select_territory returns territory name rather than instance.
W. Trevor King [Fri, 26 Mar 2010 04:34:59 +0000 (00:34 -0400)]
Player.select_territory returns territory name rather than instance.

To keep the Player interface as simple (and tamper-resistant :) as
possible, Player methods should return names instead of instances
of risk-specific classes.

Also fixed a deck -> self.deck typo in Engine.

9 years agoBroke Engine.end_of_turn_cards out of Engine.play_turn
W. Trevor King [Fri, 26 Mar 2010 04:23:18 +0000 (00:23 -0400)]
Broke Engine.end_of_turn_cards out of Engine.play_turn

For easier modification if you decide to change the rules in a

9 years agoAdded adjacency checking to Engine.attack_and_fortify.
W. Trevor King [Fri, 26 Mar 2010 04:19:41 +0000 (00:19 -0400)]
Added adjacency checking to Engine.attack_and_fortify.

9 years agoFixed bug in active_player calculation + other cleanups.
W. Trevor King [Fri, 26 Mar 2010 02:54:47 +0000 (22:54 -0400)]
Fixed bug in active_player calculation + other cleanups.

* Added docstrings to many classes and methods.
* Added NameMixin, breaking off .name portion of ID_CmpMixin.
* Removed unused contains_territory methods.
* _check_short_names comparison now case insensitive to match
* Deck gains options num_wilds and type_names.
* Deck gains method shuffle.
* Deck and Hand scoring and production generalized.
* Many Player methods renamed (losing "phase_").
* Many Player methods gain log option, since the player might want to
  know what's been going on.
* Player methods phase_attack and phase fortify combined to form
  attack_and_fortify.  The idea is to let the player make as many
  decisions as they would like to in one fell swoop, and attacking
  and fortifying are very similar.
* Engine gains game_over method for easier subclassing.
* Engine deal method more flexible, now single player.  Also takes
  over player hand manipulation from Player.draw (formerly
  phase_draw).  The idea is to have Engine do all possible Player
  manipulation; Player methods are just for making decisions and
* test function adjusted to work with
  python -c 'import risk.base as b; b.test()'

9 years agoOnly call (prev. Player.phase_report) as final contact
W. Trevor King [Fri, 26 Mar 2010 00:40:26 +0000 (20:40 -0400)]
Only call (prev. Player.phase_report) as final contact

9 years agoAdded player-specific log reporting
W. Trevor King [Thu, 25 Mar 2010 23:30:21 +0000 (19:30 -0400)]
Added player-specific log reporting

9 years agoBegan versioning (v0.1), engine and basic AI.
W. Trevor King [Thu, 25 Mar 2010 21:28:52 +0000 (17:28 -0400)]
Began versioning (v0.1), engine and basic AI.