laud=['.', 'X', '0', '.', '.', '0', '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' if sygavus<2: for kaik in k2igud(kes): laud[kaik]=kes #print(sygavus*' ', laud) hinnangud.append(seisuHinnang(vastane, sygavus+1)) #print(sygavus*' ', hinnangud[-1]) laud[kaik]="." if (kes=='X'): if (1 in hinnangud): return 1 koikmiinusyhed=True for hinnang in hinnangud: if not hinnang==-1: koikmiinusyhed=False if koikmiinusyhed and len(hinnangud)>0: return -1 if (kes=='0'): if (-1 in hinnangud): return -1 if len(hinnangud)>0 and hinnangud.count(1)==len(hinnangud): return 1 return '?' #Koosta funktsioon parima käigukoha leidmiseks #Proovi läbi kõik võimalikud käigukohad #Leia neist parima seisuhinnanguga _käik_ def kontroll(): vastus=seisuHinnang('X') if vastus==1: print('X vأµidab ') if vastus==-1: print('X kaotab') print("vastus oli ", vastus) #Lisaks eelmisele tunne أ¤ra olukord, kus alustav X paratamatult #kaotab jأ¤rgmisel kأ¤igul print(laud) print(kontroll())