diff options
author | Aineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi> | 2024-02-18 14:19:02 +0200 |
---|---|---|
committer | Aineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi> | 2024-02-18 14:19:02 +0200 |
commit | 890fd029b3ee1dee4a0c1c2430b061cd66b8b8e8 (patch) | |
tree | c1ee5d0e6a9888b34ecf6a45a0290b29a3769885 /src/miinaharava/bots/dssp.py | |
parent | a947010229c81872a28552bddc37a4761c3a575a (diff) |
Refactor & comment bots.
Diffstat (limited to 'src/miinaharava/bots/dssp.py')
-rw-r--r-- | src/miinaharava/bots/dssp.py | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/src/miinaharava/bots/dssp.py b/src/miinaharava/bots/dssp.py index 769c616..1307565 100644 --- a/src/miinaharava/bots/dssp.py +++ b/src/miinaharava/bots/dssp.py @@ -4,22 +4,27 @@ from random import sample from .simple import SimpleBot class DSSPBot(SimpleBot): - """ DSSPBot - perustyhmä botti """ + """ Kahta pistettä tutkiva tekoäly. Käyttää pohjana SipleBot tekoälyä """ + + def get_pairs(self): + """ Etsii kiinnostavien laattojen joukosta vierekkäiset """ + tiles = list(self.get_interesting_tiles()) + pairs = [] + for i, tile1 in enumerate(tiles): + for _, tile2 in enumerate(tiles, i+1): + if self.are_neighbours(tile1,tile2): + pairs.append((tile1,tile2)) + pairs.append((tile2,tile1)) + return pairs def search(self): - """ search - etsii kahden vierekkäisen laatan perusteella""" + """ Etsitään voiko viereisen numerolaatan osoittamat miinat ja + epävarmat poistamalla päätellä onko jokin nykyisen laatan tuntematon + vapaa. """ if super().search(): return True - tiles = list(self.get_interesting_tiles()) - pairs = [] - # pylint: disable = consider-using-enumerate - for i in range(len(tiles)): - for j in range(i+1,len(tiles)): - if abs(tiles[i][0]-tiles[j][0])==1 or abs(tiles[i][1]-tiles[j][1])==1: - pairs.append((tiles[i],tiles[j])) - pairs.append((tiles[j],tiles[i])) - for tile1, tile2 in pairs: + for tile1, tile2 in self.get_pairs(): c1 = self.get_value(tile1) c2 = self.get_value(tile2) n1 = self.get_neighbours(tile1) @@ -45,8 +50,7 @@ class DSSPBot(SimpleBot): c2 -= cc if c2 == 0: - for safe in n2: - self.safe_tiles.add(safe) + self.safe_tiles |= n2 return self.saved_hints() |