diff --git a/projekty/tic_tac_toe/katka.py b/projekty/tic_tac_toe/katka.py index 15ee523..0ec2efb 100644 --- a/projekty/tic_tac_toe/katka.py +++ b/projekty/tic_tac_toe/katka.py @@ -1,14 +1,22 @@ -plocha = [[" ", " ", " "], [" ", " ", " "], [" ", " ", " "]] -hrac = "X" +plocha = [[" ", " ", " "], [" ", " ", " "], [" ", " ", " "]] # globalni promenne; +hrac = "X" # spatnej zvyk -def kontrola(): +def kontrola(): # kontrola vsech moznosti; celkem v pohode tady ale slo to vyresit chytreji + # kdybychom najednou zmenili plochu z 3x3 na 4x4 tak uz by to nefungovalo + # jinak je to celkem hezky if plocha[0][0] == plocha[0][1] and plocha[0][1] == plocha[0][2] and plocha[0][2] != " ": - print("Vyhrál " + hrac) + print("Vyhrál " + hrac) # print ve funkci, ne moc idealni z funkcionalniho hlediska + # protoze `hrac` je tady globalni promenna; nevadi, to jeste budeme resit; v takhle + # malym programu to ani tolik nevadi return True if plocha[1][0] == plocha[1][1] and plocha[1][1] == plocha[1][2] and plocha[1][2] != " ": print("Vyhrál " + hrac) - return True + return True # skvele ze je tady return, diky tomuhle se utece z funkce aniz by se kontroloval zbytek if plocha[2][0] == plocha[2][1] and plocha[2][1] == plocha[2][2] and plocha[2][2] != " ": + #if plocha[2][0] == plocha[2][1] == plocha[2][2] != " ": + # ^ ekvivalence, asi trochu hezci + # je to ale specifikum pythonu ze to funguje + # takze tohle je ve skutecnosti v poradku print("Vyhrál " + hrac) return True if plocha[0][0] == plocha[1][0] and plocha[1][0] == plocha[2][0] and plocha[2][0] != " ": @@ -28,7 +36,7 @@ def kontrola(): return True return False -def vytiskni(): +def vytiskni(): # tady vsechno super print(plocha[0][0] + "|" + plocha[0][1] + "|" + plocha[0][2]) print("-+-+-") print(plocha[1][0] + "|" + plocha[1][1] + "|" + plocha[1][2]) @@ -38,14 +46,28 @@ def vytiskni(): vytiskni() while True: x = input() - y = x.split() - if plocha[int(y[0])][int(y[1])] == " ": + y = x.split() # asi bych tohle zkratil, ta promenna x tam tak trochu visi bez cile + # taky by mozna bylo chytry si rovnou vzit prvni 2 prvky z `x.split()` + # napsal bych: + #x = input() + #x = x.split() + # nebo: + #x = input().split() + # k tomu ze bych rovnou vzal 2 prvky tak bych napsal: + #x = input().split() + #y = int(x[0]) + #x = int(x[1]) + if plocha[int(y[0])][int(y[1])] == " ": # tady by bylo: `plocha[y][x] == " "` plocha[int(y[0])][int(y[1])] = hrac - if kontrola(): + if kontrola(): # tohle se mi libi - hromada lidi by napsala: + # `if kontrola() == True:` vytiskni() break - if hrac == "X": + if hrac == "X": # lze napsat hezcejc, ale to jeste neumite hrac = "O" else: hrac = "X" vytiskni() +# sice to vypada ze to hodne hatim ale libi se mi to +# je to presne jak jsem si to predstavoval +# cili exactly co jsem od vas ocekaval