summaryrefslogtreecommitdiff
path: root/src/miinaharava/bots/simple.py
diff options
context:
space:
mode:
authorAineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi>2024-02-18 15:40:21 +0200
committerAineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi>2024-02-18 15:40:21 +0200
commit583bfb9b9714f524e096b7e4aa7842990442a1e7 (patch)
tree6366e507cfbd2a1ff831f70508d0897bbeccf212 /src/miinaharava/bots/simple.py
parent890fd029b3ee1dee4a0c1c2430b061cd66b8b8e8 (diff)
Improve comments on bots.
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