X-Git-Url: http://git.treefish.org/~alex/shutbox.git/blobdiff_plain/70778cce9483af1908b216ca4cd54c791490d948..9e3585ba3617d2af399e6a18bfd45b046f7c5e1e:/src/game.py?ds=inline diff --git a/src/game.py b/src/game.py index 50d83c0..203f56a 100644 --- a/src/game.py +++ b/src/game.py @@ -1,36 +1,46 @@ -#!/usr/bin/env python3 - import random class Game: def __init__(self): - self._shutable = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + self._shutable = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 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_dice(self): + 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: @@ -38,6 +48,7 @@ class Game: shutable.remove(rod) else: return False + return True def _is_valid_option(self, rods): for option in self._options: