Annettuna on ruudukko, jossa jokainen ruutu on taivasruutu tai tähtiruutu. Merkki . tarkoittaa taivasruutua ja merkki * tarkoittaa tähtiruutua.
Tehtäväsi on laskea, montako erilaista tähtikuviota ruudukossa esiintyy. Kaksi tähtiruutua kuuluvat samaan tähtikuvioon, jos ne ovat vierekkäin vaaka-, pysty- tai vinosuunnassa.
Kaksi tähtikuviota tulkitaan erilaisiksi myös silloin, kun olisi mahdollista saada ne samanlaisiksi pyöritysten ja peilausten avulla. Tehtäväpohjan esimerkit selventävät asiaa.
Toteuta tiedostoon stars.py funktio count_patterns, jolle annetaan ruudukko listana merkkijonoja. Funktion tulee palauttaa erilaisten tähtikuvioiden määrä.
def count_patterns(grid):
# TODO
if __name__ == "__main__":
grid = ["..*..*..",
"**.....*",
".....**.",
"...*....",
".**....*"]
print(count_patterns(grid)) # 2
grid = ["....*..*",
"*.......",
"......*.",
"..*.....",
"......*."]
print(count_patterns(grid)) # 1
grid = ["***.*.**",
".*..*..*",
".*.***..",
".......*",
"......**"]
print(count_patterns(grid)) # 4
grid = ["***.***.",
"..*...*.",
"**..**..",
"..*...*.",
"**..**.."]
print(count_patterns(grid)) # 1
