summaryrefslogtreecommitdiff
path: root/src/miinaharava/bots/simple.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/miinaharava/bots/simple.py')
-rw-r--r--src/miinaharava/bots/simple.py31
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