laud=['0', '.', '0', 'X', 'X', '.', '0', '.', 'X'] voidukolmikud=[ [0, 1, 2], [3, 4, 5], [6, 7, 8], [0, 3, 6], [1, 4, 7], [2, 5, 8], [0, 4, 8], [2, 4, 6] ] def kasSama(kolmik, mangija): return laud[kolmik[0]]==mangija and \ laud[kolmik[1]]==mangija and \ laud[kolmik[2]]==mangija def kasVoit(mangija): for kolmik in voidukolmikud: if kasSama(kolmik, mangija): return True return False def kasViik(): #Kas laud on täis? #tagastab True kui laud on täis, muidu False #Kui leidub vähemasti üks punkt, siis ei ole täis if '.' in laud: return False return True def k2igud(kes): for nr in range(9): if laud[nr]=='.': yield nr def seisuHinnang(kes, sygavus=0): #tagastab 1, 0, -1 või ? #X võidu, viigi, 0 võidu ja teadmata seisu puhul if kasVoit('X'): return 1 if kasVoit('0'): return -1 if kasViik(): return 0 hinnangud=[] vastane='0' if kes=='X' else 'X' for kaik in k2igud(kes): laud[kaik]=kes print(sygavus*' ', laud) hinnangud.append(seisuHinnang(vastane, sygavus+1)) print(sygavus*' ', hinnangud[-1]) laud[kaik]="." return '?' #Kui kes==X, kuva suurim, muidu vähim hinnang print(laud) print(seisuHinnang('X'))