diff options
Diffstat (limited to 'src/miinaharava/bots/simple.py')
-rw-r--r-- | src/miinaharava/bots/simple.py | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/src/miinaharava/bots/simple.py b/src/miinaharava/bots/simple.py index 07ed954..c321bd9 100644 --- a/src/miinaharava/bots/simple.py +++ b/src/miinaharava/bots/simple.py @@ -1,5 +1,5 @@ """ bots/simple.py - yksinkertainen botti joka etsii vain yhdeltä laatalta """ -from random import sample +from random import choice from .bot import Bot @@ -12,20 +12,23 @@ class SimpleBot(Bot): joko miinoja tai vapaita. Yhdistetään ne kyseisiin joukkoihin. """ tiles = self.get_interesting_tiles() for tile in tiles: - c = self.get_value(tile) - nbrs = self.get_neighbours(tile) - self.remove_known_safe_tiles(nbrs) - c -= self.remove_mine_tiles(nbrs) - if c == 0: - self.safe_tiles |= nbrs - if c == len(nbrs): - self.mine_tiles |= nbrs + unknowns, minecount = self.get_unknowns_and_minecount(tile) + if minecount == 0: + self.safe_tiles |= unknowns + if minecount == len(unknowns): + self.mine_tiles |= unknowns return self.saved_hints() + def get_unknowns_and_minecount(self, tile): + """ Palauttaa tuntemattomat naapurit ja niissä olevien miinojen + määrän """ + minecount = self.get_value(tile) + unknowns = self.get_neighbours(tile) + self.remove_known_safe_tiles(unknowns) + minecount -= self.remove_mine_tiles(unknowns) + return unknowns, minecount + def lucky_guess(self): """ Arvotaan laatta tuntemattomista ja lisätään vapaiden joukkoon """ - tiles = list(self.get_unknown_tiles()) - if tiles: - self.safe_tiles.add(sample(tiles,1)[0]) - return True - return False + self.safe_tiles.add(choice(list(self.get_unknown_tiles()))) + return True |