diff options
author | Aineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi> | 2024-02-18 13:39:35 +0200 |
---|---|---|
committer | Aineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi> | 2024-02-18 13:39:35 +0200 |
commit | a947010229c81872a28552bddc37a4761c3a575a (patch) | |
tree | 45868bd8b5a6c7fe7a7a7045ac0fe41998c4ee89 | |
parent | 024f743255a5335e0ff3448ab2ca799a74e538b4 (diff) |
Refactor & comment bots.
-rw-r--r-- | src/miinaharava/bots/bot.py | 2 | ||||
-rw-r--r-- | src/miinaharava/bots/dssp.py | 6 | ||||
-rw-r--r-- | src/miinaharava/bots/simple.py | 23 |
3 files changed, 16 insertions, 15 deletions
diff --git a/src/miinaharava/bots/bot.py b/src/miinaharava/bots/bot.py index 81f24d4..cfeedce 100644 --- a/src/miinaharava/bots/bot.py +++ b/src/miinaharava/bots/bot.py @@ -75,7 +75,7 @@ class Bot(): """ Palauttaa kysytyn laatan tiedot. """ return self.matrix[tile[0]][tile[1]] - def remove_number_tiles(self, tiles): + def remove_known_safe_tiles(self, tiles): """ Poistaa vapaat, vapaaksi merkityt ja numerolaatat joukosta. """ for tile in list(tiles): if self.matrix[tile[0]][tile[1]] < Tile.FLAG_MINE: diff --git a/src/miinaharava/bots/dssp.py b/src/miinaharava/bots/dssp.py index 1815b49..769c616 100644 --- a/src/miinaharava/bots/dssp.py +++ b/src/miinaharava/bots/dssp.py @@ -24,8 +24,8 @@ class DSSPBot(SimpleBot): c2 = self.get_value(tile2) n1 = self.get_neighbours(tile1) n2 = self.get_neighbours(tile2) - self.remove_number_tiles(n1) - self.remove_number_tiles(n2) + self.remove_known_safe_tiles(n1) + self.remove_known_safe_tiles(n2) c1 -= self.remove_mine_tiles(n1) c2 -= self.remove_mine_tiles(n2) @@ -56,7 +56,7 @@ class DSSPBot(SimpleBot): for tile in tiles: n = self.get_neighbours(tile) c = self.get_value(tile) - self.remove_mine_tiles(n) - self.remove_number_tiles(n) + self.remove_known_safe_tiles(n) for ntile in n: heatmap[ntile] += c/len(n) diff --git a/src/miinaharava/bots/simple.py b/src/miinaharava/bots/simple.py index 46b9506..07ed954 100644 --- a/src/miinaharava/bots/simple.py +++ b/src/miinaharava/bots/simple.py @@ -7,24 +7,25 @@ class SimpleBot(Bot): """ SimpleBot - perustyhmä botti """ def search(self): - """ simple_search - jos viereisten avaamattomien määrä tästmää """ + """ Etsitään laattoja jotka tietyllä laatalla olevan numeron sekä + sitä ympäröivien tuntemattomien laattojen määrän johdosta täytyy olla + joko miinoja tai vapaita. Yhdistetään ne kyseisiin joukkoihin. """ tiles = self.get_interesting_tiles() for tile in tiles: c = self.get_value(tile) - n = self.get_neighbours(tile) - self.remove_number_tiles(n) - c -= self.remove_mine_tiles(n) + nbrs = self.get_neighbours(tile) + self.remove_known_safe_tiles(nbrs) + c -= self.remove_mine_tiles(nbrs) if c == 0: - for safe in n: - self.safe_tiles.add(safe) - if c == len(n): - for mine in n: - self.mine_tiles.add(mine) + self.safe_tiles |= nbrs + if c == len(nbrs): + self.mine_tiles |= nbrs return self.saved_hints() def lucky_guess(self): - tiles = self.get_unknown_tiles() + """ Arvotaan laatta tuntemattomista ja lisätään vapaiden joukkoon """ + tiles = list(self.get_unknown_tiles()) if tiles: - self.safe_tiles.add(sample(sorted(tiles),1)[0]) + self.safe_tiles.add(sample(tiles,1)[0]) return True return False |