prvni payload piskvorek uz je tady
parent
bf7d82392f
commit
13838c8dbf
@ -0,0 +1 @@
|
|||||||
|
furt piskvorky...
|
@ -0,0 +1,51 @@
|
|||||||
|
plocha = [[" ", " ", " "], [" ", " ", " "], [" ", " ", " "]]
|
||||||
|
hrac = "X"
|
||||||
|
|
||||||
|
def kontrola():
|
||||||
|
if plocha[0][0] == plocha[0][1] and plocha[0][1] == plocha[0][2] and plocha[0][2] != " ":
|
||||||
|
print("Vyhrál " + hrac)
|
||||||
|
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
|
||||||
|
if plocha[2][0] == plocha[2][1] and plocha[2][1] == plocha[2][2] and plocha[2][2] != " ":
|
||||||
|
print("Vyhrál " + hrac)
|
||||||
|
return True
|
||||||
|
if plocha[0][0] == plocha[1][0] and plocha[1][0] == plocha[2][0] and plocha[2][0] != " ":
|
||||||
|
print("Vyhrál " + hrac)
|
||||||
|
return True
|
||||||
|
if plocha[0][1] == plocha[1][1] and plocha[1][1] == plocha[2][1] and plocha[2][1] != " ":
|
||||||
|
print("Vyhrál " + hrac)
|
||||||
|
return True
|
||||||
|
if plocha[0][2] == plocha[1][2] and plocha[1][2] == plocha[2][2] and plocha[2][2] != " ":
|
||||||
|
print("Vyhrál " + hrac)
|
||||||
|
return True
|
||||||
|
if plocha[0][0] == plocha[1][1] and plocha[1][1] == plocha[2][2] and plocha[2][2] != " ":
|
||||||
|
print("Vyhrál " + hrac)
|
||||||
|
return True
|
||||||
|
if plocha[0][2] == plocha[1][1] and plocha[1][1] == plocha[2][0] and plocha[2][0] != " ":
|
||||||
|
print("Vyhrál " + hrac)
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def vytiskni():
|
||||||
|
print(plocha[0][0] + "|" + plocha[0][1] + "|" + plocha[0][2])
|
||||||
|
print("-+-+-")
|
||||||
|
print(plocha[1][0] + "|" + plocha[1][1] + "|" + plocha[1][2])
|
||||||
|
print("-+-+-")
|
||||||
|
print(plocha[2][0] + "|" + plocha[2][1] + "|" + plocha[2][2])
|
||||||
|
|
||||||
|
vytiskni()
|
||||||
|
while True:
|
||||||
|
x = input()
|
||||||
|
y = x.split()
|
||||||
|
if plocha[int(y[0])][int(y[1])] == " ":
|
||||||
|
plocha[int(y[0])][int(y[1])] = hrac
|
||||||
|
if kontrola():
|
||||||
|
vytiskni()
|
||||||
|
break
|
||||||
|
if hrac == "X":
|
||||||
|
hrac = "O"
|
||||||
|
else:
|
||||||
|
hrac = "X"
|
||||||
|
vytiskni()
|
@ -0,0 +1,181 @@
|
|||||||
|
grid = [
|
||||||
|
["", "", ""],
|
||||||
|
["", "", ""],
|
||||||
|
["", "", ""]
|
||||||
|
]
|
||||||
|
|
||||||
|
x = False
|
||||||
|
|
||||||
|
def play1():
|
||||||
|
|
||||||
|
global x_input_1
|
||||||
|
global y_input_1
|
||||||
|
true_x = False
|
||||||
|
true_y = False
|
||||||
|
true_taken_1 = False
|
||||||
|
|
||||||
|
print("Now will play player 1")
|
||||||
|
|
||||||
|
while not true_taken_1:
|
||||||
|
|
||||||
|
while not true_x:
|
||||||
|
|
||||||
|
x_input_1 = int(input("Enter x axis position (1, 2, 3): "))
|
||||||
|
|
||||||
|
if x_input_1 == 1:
|
||||||
|
true_x = True
|
||||||
|
elif x_input_1 == 2:
|
||||||
|
true_x = True
|
||||||
|
elif x_input_1 == 3:
|
||||||
|
true_x = True
|
||||||
|
else:
|
||||||
|
print("Try again (1, 2, 3)")
|
||||||
|
|
||||||
|
while not true_y:
|
||||||
|
|
||||||
|
y_input_1 = int(input("Enter y axis position (1, 2, 3): "))
|
||||||
|
|
||||||
|
if y_input_1 == 1:
|
||||||
|
true_y = True
|
||||||
|
elif y_input_1 == 2:
|
||||||
|
true_y = True
|
||||||
|
elif y_input_1 == 3:
|
||||||
|
true_y = True
|
||||||
|
else:
|
||||||
|
print("Try again (1, 2, 3)")
|
||||||
|
|
||||||
|
if grid[x_input_1 - 1][y_input_1 - 1] not in ("X", "O"):
|
||||||
|
true_taken_1 = True
|
||||||
|
|
||||||
|
else:
|
||||||
|
print("That position is taken")
|
||||||
|
true_x = False
|
||||||
|
true_y = False
|
||||||
|
|
||||||
|
grid[x_input_1 - 1][y_input_1 - 1] = "X"
|
||||||
|
|
||||||
|
print(grid[0][0] + " | " + grid[1][0] + " | " + grid[2][0] + "\n" + "__" + " " + "__" + " " + "__" +
|
||||||
|
"\n" + grid[0][1] + " | " + grid[1][1] + " | " + grid[2][1] + "\n" + "__" + " " + "__" + " " + "__" +
|
||||||
|
"\n" + grid[0][2] + " | " + grid[1][2] + " | " + grid[2][2])
|
||||||
|
|
||||||
|
def play2():
|
||||||
|
print("Now will play player 2\n")
|
||||||
|
global x_input_2
|
||||||
|
global y_input_2
|
||||||
|
true_taken_2 = False
|
||||||
|
true_x_1 = False
|
||||||
|
true_y_1 = False
|
||||||
|
|
||||||
|
while not true_taken_2:
|
||||||
|
|
||||||
|
while not true_x_1:
|
||||||
|
|
||||||
|
x_input_2 = int(input("Enter x axis position (1, 2, 3): "))
|
||||||
|
|
||||||
|
if x_input_2 == 1:
|
||||||
|
true_x_1 = True
|
||||||
|
elif x_input_2 == 2:
|
||||||
|
true_x_1 = True
|
||||||
|
elif x_input_2 == 3:
|
||||||
|
true_x_1 = True
|
||||||
|
else:
|
||||||
|
print("Try again (1, 2, 3)")
|
||||||
|
|
||||||
|
while not true_y_1:
|
||||||
|
y_input_2 = int(input("Enter y axis position (1, 2, 3): "))
|
||||||
|
|
||||||
|
if y_input_2 == 1:
|
||||||
|
true_y_1 = True
|
||||||
|
elif y_input_2 == 2:
|
||||||
|
true_y_1 = True
|
||||||
|
elif y_input_2 == 3:
|
||||||
|
true_y_1 = True
|
||||||
|
else:
|
||||||
|
print("Try again (1, 2, 3)")
|
||||||
|
|
||||||
|
if grid[x_input_2 - 1][y_input_2 - 1] not in ("X", "O"):
|
||||||
|
true_taken_2 = True
|
||||||
|
|
||||||
|
else:
|
||||||
|
print("That position is taken")
|
||||||
|
true_x_1 = False
|
||||||
|
true_y_1 = False
|
||||||
|
|
||||||
|
grid[x_input_2 - 1][y_input_2 - 1] = "O"
|
||||||
|
|
||||||
|
print(grid[0][0] + " | " + grid[1][0] + " | " + grid[2][0] + "\n" + "__" + " " + "__" + " " + "__" +
|
||||||
|
"\n" + grid[0][1] + " | " + grid[1][1] + " | " + grid[2][1] + "\n" + "__" + " " + "__" + " " + "__" +
|
||||||
|
"\n" + grid[0][2] + " | " + grid[1][2] + " | " + grid[2][2])
|
||||||
|
|
||||||
|
def win():
|
||||||
|
global x
|
||||||
|
x0_y0 = grid[0][0]
|
||||||
|
x0_y1 = grid[0][1]
|
||||||
|
x0_y2 = grid[0][2]
|
||||||
|
x1_y0 = grid[1][0]
|
||||||
|
x1_y1 = grid[1][1]
|
||||||
|
x1_y2 = grid[1][2]
|
||||||
|
x2_y0 = grid[2][0]
|
||||||
|
x2_y1 = grid[2][1]
|
||||||
|
x2_y2 = grid[2][2]
|
||||||
|
|
||||||
|
if x0_y0 == x0_y1 == x0_y2 and x0_y0 == "X":
|
||||||
|
print("Player 1 wins")
|
||||||
|
x = True
|
||||||
|
|
||||||
|
elif x1_y0 == x1_y1 == x1_y2 and x1_y0 == "X":
|
||||||
|
print("Player 1 wins")
|
||||||
|
x = True
|
||||||
|
elif x2_y0 == x2_y1 == x2_y2 and x2_y0 == "X":
|
||||||
|
print("Player 1 wins")
|
||||||
|
x = True
|
||||||
|
elif x0_y0 == x1_y0 == x2_y0 and x0_y0 == "X":
|
||||||
|
print("Player 1 wins")
|
||||||
|
x = True
|
||||||
|
elif x0_y1 == x1_y1 == x0_y2 and x0_y1 == "X":
|
||||||
|
print("Player 1 wins")
|
||||||
|
x = True
|
||||||
|
elif x0_y2 == x1_y2 == x2_y2 and x0_y2 == "X":
|
||||||
|
print("Player 1 wins")
|
||||||
|
x = True
|
||||||
|
elif x0_y0 == x1_y1 == x2_y2 and x0_y0 == "X":
|
||||||
|
print("Player 1 wins")
|
||||||
|
x = True
|
||||||
|
elif x2_y0 == x1_y1 == x0_y2 and x2_y0 == "X":
|
||||||
|
print("Player 1 wins")
|
||||||
|
x = True
|
||||||
|
|
||||||
|
elif x0_y0 == x0_y1 == x0_y2 and x0_y0 == "O":
|
||||||
|
print("Player 2 wins")
|
||||||
|
x = True
|
||||||
|
elif x1_y0 == x1_y1 == x1_y2 and x1_y0 == "O":
|
||||||
|
print("Player 2 wins")
|
||||||
|
x = True
|
||||||
|
elif x2_y0 == x2_y1 == x2_y2 and x2_y0 == "O":
|
||||||
|
print("Player 2 wins")
|
||||||
|
x = True
|
||||||
|
elif x0_y0 == x1_y0 == x2_y0 and x0_y0 == "O":
|
||||||
|
print("Player 2 wins")
|
||||||
|
x = True
|
||||||
|
elif x0_y1 == x1_y1 == x0_y2 and x0_y1 == "O":
|
||||||
|
print("Player 2 wins")
|
||||||
|
x = True
|
||||||
|
elif x0_y2 == x1_y2 == x2_y2 and x0_y2 == "O":
|
||||||
|
print("Player 2 wins")
|
||||||
|
x = True
|
||||||
|
elif x0_y0 == x1_y1 == x2_y2 and x0_y0 == "O":
|
||||||
|
print("Player 2 wins")
|
||||||
|
x = True
|
||||||
|
elif x2_y0 == x1_y1 == x0_y2 and x2_y0 == "O":
|
||||||
|
print("Player 2 wins")
|
||||||
|
x = True
|
||||||
|
|
||||||
|
while not x:
|
||||||
|
win()
|
||||||
|
play1()
|
||||||
|
|
||||||
|
win()
|
||||||
|
if not x:
|
||||||
|
play2()
|
||||||
|
|
||||||
|
print("End of the game")
|
@ -0,0 +1,121 @@
|
|||||||
|
board = ["[ ]", "[ ]", "[ ]",
|
||||||
|
"[ ]", "[ ]", "[ ]",
|
||||||
|
"[ ]", "[ ]", "[ ]"]
|
||||||
|
player_2 = False
|
||||||
|
Hra = True
|
||||||
|
kolo = 1
|
||||||
|
winner_2 = None
|
||||||
|
|
||||||
|
#spuští funkce ve správném pořadí
|
||||||
|
def tah():
|
||||||
|
Tah = Input_pos()
|
||||||
|
while Input_chack(Tah) == False:
|
||||||
|
Tah = Input_pos()
|
||||||
|
Move(Tah)
|
||||||
|
Show()
|
||||||
|
|
||||||
|
#zobarí hrací desku
|
||||||
|
def Show():
|
||||||
|
print(board[0], board[1], board[2], sep="")
|
||||||
|
print(board[3], board[4], board[5], sep="")
|
||||||
|
print(board[6], board[7], board[8], sep="")
|
||||||
|
print("_________")
|
||||||
|
|
||||||
|
#vrátí array s xy informací o tahu
|
||||||
|
def Input_pos():
|
||||||
|
player = int(player_2) + 1
|
||||||
|
print("hráč", player, "hraje")
|
||||||
|
vert = int(input("zadej sloupec (max 3)"))
|
||||||
|
while vert > 3:
|
||||||
|
print("vstup nesmí být větší než 3")
|
||||||
|
vert = int(input("zadej sloupec (max 3)"))
|
||||||
|
hor = int(input("zadej řádek (max 3)"))
|
||||||
|
while hor > 3:
|
||||||
|
hor = int(input("zadej řádek (max 3)"))
|
||||||
|
print("vstup nesmí být větší než 3")
|
||||||
|
tah = [vert, hor]
|
||||||
|
return To_Index(tah)
|
||||||
|
|
||||||
|
#změní políčko
|
||||||
|
def Move(tah):
|
||||||
|
if Input_chack(tah):
|
||||||
|
if player_2:
|
||||||
|
x = "O"
|
||||||
|
else:
|
||||||
|
x = "X"
|
||||||
|
board[tah] = "[" + x + "]"
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
|
||||||
|
#skontroluje platnost vstupu
|
||||||
|
def Input_chack(index):
|
||||||
|
if not board[index] == "[ ]":
|
||||||
|
print("pole je již obsazené")
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return True
|
||||||
|
|
||||||
|
#převede array s xy pozicí do indexu
|
||||||
|
def To_Index(tah):
|
||||||
|
index = tah[0] + ((tah[1] - 1) * 3) - 1
|
||||||
|
return index
|
||||||
|
|
||||||
|
#skontroluje zde hráč nevyhrál
|
||||||
|
def Chack():
|
||||||
|
if board[0] == board[1] and board[0] == board[2] and not board[0] == "[ ]": #123
|
||||||
|
if board[0] == "[X]":
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
elif board[3] == board[4] and board[3] == board[5] and not board[3] == "[ ]": #456
|
||||||
|
if board[3] == "[X]":
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
elif board[6] == board[7] and board[6] == board[8] and not board[6] == "[ ]": #789
|
||||||
|
if board[6] == "[X]":
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
elif board[0] == board[3] and board[0] == board[6] and not board[0] == "[ ]": #147
|
||||||
|
if board[0] == "[X]":
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
elif board[1] == board[4] and board[1] == board[7] and not board[1] == "[ ]": #258
|
||||||
|
if board[1] == "[X]":
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
elif board[2] == board[5] and board[2] == board[8] and not board[2] == "[ ]": #369
|
||||||
|
if board[2] == "[X]":
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
elif board[0] == board[4] and board[0] == board[8] and not board[0] == "[ ]": #159
|
||||||
|
if board[0] == "[X]":
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
elif board[2] == board[4] and board[2] == board[6] and not board[2] == "[ ]": #357
|
||||||
|
if board[2] == "[X]":
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
Show()
|
||||||
|
while Hra:
|
||||||
|
tah()
|
||||||
|
if not Chack() == None:
|
||||||
|
Hra = False
|
||||||
|
if player_2:
|
||||||
|
print("Hráč 2 wyhrál v kole", kolo)
|
||||||
|
else:
|
||||||
|
print("Hráč 1 wyhrál v kole", kolo)
|
||||||
|
player_2 = not player_2
|
||||||
|
kolo += 1
|
||||||
|
if kolo > 8:
|
||||||
|
Hra = False
|
||||||
|
print("Hra skončila bez výsledku")
|
@ -0,0 +1,56 @@
|
|||||||
|
values = {
|
||||||
|
0: " ",
|
||||||
|
1: "x",
|
||||||
|
2: "o"
|
||||||
|
}
|
||||||
|
|
||||||
|
board = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
|
||||||
|
|
||||||
|
def print_board():
|
||||||
|
for i in range(3):
|
||||||
|
print("{}|{}|{}".format(values.get(board[i][0]), values.get(board[i][1]), values.get(board[i][2])))
|
||||||
|
print("-+-+-")
|
||||||
|
|
||||||
|
def get_user_input():
|
||||||
|
return [int(i) for i in input().split()]
|
||||||
|
|
||||||
|
def check_win():
|
||||||
|
for i in range(3):
|
||||||
|
if board[i][0] == board[i][1] == board[i][2] and board[i][0] != 0:
|
||||||
|
return True
|
||||||
|
if board[0][i] == board[1][i] == board[2][i] and board[0][i] != 0:
|
||||||
|
return True
|
||||||
|
|
||||||
|
if board[0][0] == board[1][1] == board[2][2] and board[1][1] != 0:
|
||||||
|
return True
|
||||||
|
if board[2][0] == board[1][1] == board[0][2] and board[1][1] != 0:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def main():
|
||||||
|
finished = False
|
||||||
|
plays = 1
|
||||||
|
while not finished:
|
||||||
|
print_board()
|
||||||
|
print("Hraje {}".format(values.get(plays)))
|
||||||
|
inp = False
|
||||||
|
while not inp:
|
||||||
|
try:
|
||||||
|
user_input = get_user_input()
|
||||||
|
if board[user_input[0]][user_input[1]] == 0:
|
||||||
|
board[user_input[0]][user_input[1]] = plays
|
||||||
|
if plays == 2:
|
||||||
|
plays = 0
|
||||||
|
plays += 1
|
||||||
|
inp = True
|
||||||
|
else:
|
||||||
|
print("Buňka je již obsazena")
|
||||||
|
except:
|
||||||
|
print("Váš vstup není platný")
|
||||||
|
finished = check_win()
|
||||||
|
|
||||||
|
print_board()
|
||||||
|
print("Konec hry")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@ -0,0 +1,84 @@
|
|||||||
|
#Jupyter je lepsi
|
||||||
|
import numpy as np
|
||||||
|
ikonky = [" "," X "," O "]
|
||||||
|
def render(board):
|
||||||
|
text = "+---+---+---+\n"
|
||||||
|
for row in board:
|
||||||
|
text += "|"
|
||||||
|
for column in row:
|
||||||
|
text += ikonky[column] + "|"
|
||||||
|
text += "\n+---+---+---+\n"
|
||||||
|
print(text)
|
||||||
|
print("""+---+---+---+
|
||||||
|
| 0 | 1 | 2 |
|
||||||
|
+---+---+---+
|
||||||
|
| 3 | 4 | 5 |
|
||||||
|
+---+---+---+
|
||||||
|
| 6 | 7 | 8 |
|
||||||
|
+---+---+---+""")
|
||||||
|
|
||||||
|
def compare3(a,b,c):
|
||||||
|
return a == b and b == c and a != 0
|
||||||
|
|
||||||
|
def check(board, move):
|
||||||
|
#print(board, move)
|
||||||
|
end = False
|
||||||
|
#kontrola řádku
|
||||||
|
end = end or compare3(board[0, move[1]],board[1, move[1]],board[2, move[1]])
|
||||||
|
#kontrola sloupce
|
||||||
|
end = end or compare3(board[move[0], 0],board[move[0], 1],board[move[0], 2])
|
||||||
|
#kontrola diagnálně
|
||||||
|
end = end or compare3(board[0, 0],board[1, 1],board[2, 2])
|
||||||
|
end = end or compare3(board[0, 2],board[1, 1],board[2, 0])
|
||||||
|
|
||||||
|
return (end, 0 in board)
|
||||||
|
|
||||||
|
def inputMove():
|
||||||
|
x = ""
|
||||||
|
OK = False
|
||||||
|
while not OK:
|
||||||
|
x = input("Zadejte tah od 0 do 8 \n > ")
|
||||||
|
OK = x.isnumeric()
|
||||||
|
if OK:
|
||||||
|
OK = int(x) >= 0 and int(x) <= 8
|
||||||
|
if OK:
|
||||||
|
X = int(x)//3
|
||||||
|
Y = int(x)%3
|
||||||
|
OK = move((X, Y),1)
|
||||||
|
|
||||||
|
def move(move,player):
|
||||||
|
global board
|
||||||
|
global lastMove
|
||||||
|
OK = board[move] == 0
|
||||||
|
if OK:
|
||||||
|
board[move] = player
|
||||||
|
lastMove = move
|
||||||
|
return OK
|
||||||
|
|
||||||
|
from random import randint
|
||||||
|
def AImove():
|
||||||
|
#vim ze to neni minmax
|
||||||
|
while not move((randint(0,2),randint(0,2)), 2):
|
||||||
|
continue
|
||||||
|
return move
|
||||||
|
|
||||||
|
|
||||||
|
#hra
|
||||||
|
global board
|
||||||
|
board = np.zeros((3, 3), dtype=np.int)
|
||||||
|
global lastMove
|
||||||
|
lastMove = (0,0)
|
||||||
|
player = 1
|
||||||
|
render(board)
|
||||||
|
while (not check(board, lastMove)[0]) and check(board, lastMove)[1]:
|
||||||
|
if player == 1:
|
||||||
|
inputMove()
|
||||||
|
else:
|
||||||
|
AImove()
|
||||||
|
render(board)
|
||||||
|
player = (player%2)+1 #Hraje další hráč; 1 => 2; 2 => 1
|
||||||
|
if check(board, lastMove)[0]:
|
||||||
|
print("Vyhrál: "+ikonky[board[lastMove]])
|
||||||
|
else:
|
||||||
|
print("Remíza")
|
||||||
|
|
Loading…
Reference in New Issue