laud=['0', '.', '0', 'X', 'X', '.', '0', 'X', '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 alamseisud(mangija, sygavus=0): for nr in range(9): if laud[nr]=='.': laud[nr]=mangija print(sygavus*' ', laud, end='') if kasVoit(mangija): print(mangija, 'võit') elif not '.' in laud: print('viik') elif sygavus<10: print() vastane='0' if mangija=='X' else 'X' alamseisud(vastane, sygavus+1) else: print("piiratud") laud[nr]='.' #Kui selle käiguga mängija võidab, siis trükitakse see eraldi välja #print(kasVoit('X')) #alamseisud('X') def seisuHinnang0(): kasAlatiNulliVoit=True for nr in range(9): if laud[nr]=='.': laud[nr]='X' if kasVoit('X'): return 1 kasNulliVoit=False for nr0 in range(9): if laud[nr0]=='.': laud[nr0]='0' if kasVoit('0'): kasNulliVoit=True laud[nr0]='.' if not kasNulliVoit: kasAlatiNulliVoit=False laud[nr]='.' if kasAlatiNulliVoit: return -1 return '?' def seisuHinnang(kellekord, sygavus=0): if kasVoit('X'): return 1 if kasVoit('0'): return -1 hinnangud=[] if sygavus==0: for nr in range(9): if laud[nr]=='.': laud[nr]=kellekord hinnang=seisuHinnang('0' if kellekord=='X' else 'X', sygavus+1) hinnangud.append(hinnang) laud[nr]='.' if 1 in hinnangud: return 1 return "?" # X-i võit -> 1 # viik -> 0 # 0-i võit -> -1 # mäng jätkub -> ? #pass if seisuHinnang('X')==1: print('X võidab ühe käiguga') elif seisuHinnang('X')==-1: print('0 võidab pärast x-i käiku') else: print('mäng jätkub')