X-Git-Url: http://git.treefish.org/~alex/shutbox.git/blobdiff_plain/57ac0b5317c254ec40b7718bbbb06fa7165663d2..8fe5c4eee79c73b0409d4e305e18b51b790e028c:/src/game.py?ds=sidebyside diff --git a/src/game.py b/src/game.py index 04a32e2..5fc133a 100644 --- a/src/game.py +++ b/src/game.py @@ -1,5 +1,3 @@ -#!/usr/bin/env python3 - import random class Game: @@ -7,27 +5,42 @@ class Game: self._shutable = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] self._diced = None self._options = [] + self._score = 0 def dice(self): if not self._diced: - self._diced = [random.randint(0, 6), random.randint(0, 6)] - for rods in [ self._dice, - [ abs(self._dice[0] - self._dice[1]) ], - [ self._dice[0] + self._dice[1] ] ]: + self._diced = [random.randint(1, 6), random.randint(1, 6)] + self._diced.sort() + for rods in [ self._diced, + [ abs(self._diced[0] - self._diced[1]) ], + [ self._diced[0] + self._diced[1] ] ]: if self._can_be_shut(rods): self._options.append(rods) + def get_diced(self): + return self._diced + + def get_shutable(self): + return self._shutable + + def get_options(self): + return self._options + def shut(self, rods): if self._is_valid_option(rods): for rod in rods: + self._score += rod self._shutable.remove(rod) self._diced = None self._options = [] - def is_game_over(self): + def is_over(self): return len(self._shutable) == 0 or \ ( self._diced and len(self._options) == 0 ) + def get_score(self): + return self._score + def _can_be_shut(self, rods): shutable = self._shutable.copy() for rod in rods: @@ -35,6 +48,7 @@ class Game: shutable.remove(rod) else: return False + return True def _is_valid_option(self, rods): for option in self._options: