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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
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
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
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
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
18 if science.can_spend(self.game.lab):
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
19 self.science.append(science)
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
20 print " %s. %s (%s)" % (
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
21 len(self.science), science.NAME, science.points)
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
22 else:
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
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
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
26 assert not missions, "Missions not currently supported."
5d699b1f7188 Better REPL game.
Jeremy Thurgood <firxen@gmail.com>
parents: 23
diff changeset
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()