The current game state.
"""
-from .constants import NORTH, SOUTH, EAST, WEST
-from .gameboard import GameBoard
-from .player import Player
+from naja.gameboard import GameBoard
+from naja.resources import resources, ResourceNotFound
+
+
+def load_location_deck(name):
+ try:
+ return resources.get_yaml('location_decks', '%s.yaml' % name)
+ except ResourceNotFound:
+ return resources.get_json('location_decks', '%s.json' % name)
class GameState(object):
Naja game state.
"""
- INITIAL_BITS = NORTH | SOUTH | EAST | WEST
- MAX_HEALTH = 4
- WINS_REQUIRED = 4
+ def __init__(self, gameboard):
+ self.gameboard = gameboard
+
+ @classmethod
+ def new(cls, deck='standard', **kw):
+ deck = load_location_deck(deck)
+ return cls(GameBoard.new_game(deck, **kw))
+
+ @classmethod
+ def load(cls, data):
+ return cls(GameBoard.import_game(data))
+
+ @property
+ def player(self):
+ return self.gameboard.player
- def __init__(self):
- self.player = Player(self.INITIAL_BITS, (0, 0))
- self.gameboard = GameBoard(
- self.player, self.MAX_HEALTH, self.WINS_REQUIRED)
+ @property
+ def board_locations(self):
+ return self.gameboard.board_locations