Uebungsaufgaben/Semester3/Python/Sodoku.py
2024-12-19 23:55:07 +01:00

56 lines
1.3 KiB
Python

import threading
from Kaestchen import Kaestchen
class Sodoku:
def __init__(self):
self.alleZellen = [[Kaestchen(x, y) for x in range(3)] for y in range(3)]
def __str__(self):
gesamt = ""
for index, zelle in enumerate(self.alleZellen):
gesamt += str(zelle)
if (index + 1) % 3 == 0:
gesamt += "\n"
return gesamt
def __repr__(self):
gesamt = ""
for index, zelle in enumerate(self.alleZellen):
gesamt += str(zelle)
if (index + 1) % 3 == 0:
gesamt += "\n"
return gesamt
def wert_eintragen(self, wert, zeile, spalte):
self.alleZellen[zeile//3][spalte//3].wert_eintragen(wert, zeile, spalte)
def update_screen(self):
print(self)
def loesen(self):
alleThreads = []
name = 0
for i in self.alleZellen:
for j in i:
name += 1
alleThreads.append(threading.Thread(name=name, target=j.loesen, args=(self, )))
for thread in alleThreads:
thread.start()
for thread in alleThreads:
thread.join()
print("Das Sodoku wurde gelöst: ")
print(self)
if __name__ == "__main__":
sodoku = Sodoku()
sodoku.loesen()