Mercurial > sypikslang
annotate gamelib/tests/repl_game.py @ 26:5d699b1f7188
Better REPL game.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sun, 06 May 2012 19:24:52 +0200 |
parents | f6a3b213857b |
children | 2f7d8f908de0 |
rev | line source |
---|---|
23
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
1 from gamelib.gamestate import Game |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
2 |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
3 |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
4 class ReplGame(object): |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
5 def __init__(self, init_data=None): |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
6 self.game = Game(init_data=init_data) |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
7 self._begin_turn() |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
8 |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
9 def _begin_turn(self): |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
10 self.game.start_turn() |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
11 self.display_state() |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
12 |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
13 def display_state(self): |
26 | 14 print "Points:", self.game.points |
23
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
15 print "Science:" |
26 | 16 self.science = [] |
23
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
17 for science in self.game.lab.science: |
26 | 18 if science.can_spend(self.game.lab): |
19 self.science.append(science) | |
20 print " %s. %s (%s)" % ( | |
21 len(self.science), science.NAME, science.points) | |
22 else: | |
23 print " -- %s (%s)" % (science.NAME, science.points) | |
23
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
24 |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
25 def next_turn(self, research_list, missions): |
26 | 26 assert not missions, "Missions not currently supported." |
27 research_list = [self.science[i - 1] for i in research_list] | |
23
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
28 self.game.cur_allocation.extend(research_list) |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
29 self.game.cur_missions.extend(missions) |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
30 self.game.end_turn() |
f6a3b213857b
Fix up some game state logic, add very basic REPL game interface.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
31 self._begin_turn() |