1. Piškvorky
Jednoduchšie
board = [
[" ", " ", " "],
[" ", " ", " "],
[" ", " ", " "]
]
onturn = "X"
won = False
while True:
# Nakresli hernú dosku
for row in board:
print("+---" * len(row) + '+')
print("|", end="")
for cell in row:
print(" " + cell + " |", end="")
print()
print("+---" * len(row) + '+')
if won:
break
# Ťah aktuálneho hráča
while True:
turn = input(f"Ťah {onturn}: ")
r, s = turn.split(",")
r, s = int(r), int(s)
if 0 <= r < 3 and 0 <= s < 3 and board[r][s] == " ":
board[r][s] = onturn
break
# Pozri či hráč nevyhral
for i in range(len(board)):
if board[i][0] == onturn and board[i][1] == onturn and board[i][2] == onturn:
won = True
for i in range(len(board)):
if board[0][i] == onturn and board[1][i] == onturn and board[2][i] == onturn:
won = True
if board[0][0] == onturn and board[1][1] == onturn and board[2][2] == onturn:
won = True
if board[0][2] == onturn and board[1][1] == onturn and board[2][0] == onturn:
won = True
# Vymeň hráča na ťahu
onturn = "O" if onturn == "X" else "X"
if won:
print(f"Vyhrali: {onturn}")
Zložitejšie
hra = [[" ", " ", " "],
[" ", " ", " "],
[" ", " ", " "]]
tah = 0
hraci = ["X", "O"]
print("----------- PIŠKVORKY ----------- ")
while True:
# Nakresli aktuálnu hraciu plochu
for x in range(3):
print("\n---------------")
for y in range(3):
print("| {} |".format(hra[x][y]), end="")
print("\n---------------\n")
# Získaj miesto od uživateľa = miesto a over jeho obsadenie
while True:
tahhrac = int(input("Tvoj ťah (1 - 9): "))
if tahhrac >= 1 and tahhrac <= 9:
x = (tahhrac - 1) // 3
y = (tahhrac - 1) % 3
if hra[x][y] == " ":
hra[x][y] = hraci[tah]
tah = (tah + 1) % len(hraci)
break
# Vygeneruj ťah počítača - TODO
# Brute Force/ Minimax
# Kto vyhral - Riadky, Stĺpce, Diagonály
vyhra = " "
remiza = True
for i in range(3):
for p in hraci:
if hra[i][0] == p and hra[i][1] == p and hra[i][2] == p:
vyhra = p
for i in range(3):
for p in hraci:
if hra[0][i] == p and hra[1][i] == p and hra[2][i] == p:
vyhra = p
for p in hraci:
if hra[0][0] == p and hra[1][1] == p and hra[2][2] == p:
vyhra = p
for p in hraci:
if hra[0][2] == p and hra[1][1] == p and hra[2][0] == p:
vyhra = p
# Je Remíza
for i in range(3):
for j in range(3):
if hra[i][j] == " ":
remiza = False
if remiza == True:
print("Hra sa skončila remízou")
break
if vyhra == "O":
print("Hru vyhrali: Krúžky [O]")
break
elif vyhra == "X":
print("Hru vyhrali: Krížiky [X]")
break
V grafickom režime