summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi>2024-02-18 13:39:35 +0200
committerAineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi>2024-02-18 13:39:35 +0200
commita947010229c81872a28552bddc37a4761c3a575a (patch)
tree45868bd8b5a6c7fe7a7a7045ac0fe41998c4ee89
parent024f743255a5335e0ff3448ab2ca799a74e538b4 (diff)
Refactor & comment bots.
-rw-r--r--src/miinaharava/bots/bot.py2
-rw-r--r--src/miinaharava/bots/dssp.py6
-rw-r--r--src/miinaharava/bots/simple.py23
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