blob: 07ed9549bd59805ddfa0fbe35dcd778dd2602662 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
""" bots/simple.py - yksinkertainen botti joka etsii vain yhdeltä laatalta """
from random import sample
from .bot import Bot
class SimpleBot(Bot):
""" SimpleBot - perustyhmä botti """
def search(self):
""" 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)
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
return self.saved_hints()
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
|