Example 1: tic tac toe python
def slant_check(matrix,P1,P2):
empty_lst1 = []
empty_lst2= []
lst1 = []
lst2 = []
x = len(matrix)
v = len(matrix) - 1
t = 0
g = 0
n = True
while n:
for i in range(x):
if matrix[i][i] == P1 or matrix[t][i] == P1:
empty_lst1.append(matrix[i][i])
if matrix[i][i] == P2 or matrix[t][i] == P2:
empty_lst2.append(matrix[i][i])
while v >= g:
if matrix[g][v] == P1:
lst1.append(matrix[g][v])
if matrix[g][v] == P2:
lst2.append(matrix[g][v])
t -= 1
v -= 1
g += 1
if len(empty_lst1) == x:
return True
if len(empty_lst2) == x:
return True
if len(lst1) == x:
return True
if len(lst2) == x:
return True
return False
def vertical_check(lst,P1,P2):
for i in range(len(lst) - 2):
for j in range(len(lst)):
if lst[i][j] == P1 and lst[i + 1][j] == P1 and lst[i + 2][j] == P1:
return True
if lst[i][j] == P2 and lst[i + 1][j] == P2 and lst[i + 2][j] == P2:
return True
return False
def horizontal_check(lst,P1,P2):
for i in range(len(lst)):
for j in range(len(lst) - 2):
if lst[i][j]== P1 and lst[i][j + 1]== P1 and lst[i][j + 2]== P1 :
return True
if lst[i][j]== P2 and lst[i][j + 1]== P2 and lst[i][j + 2]== P2 :
return True
return False
def find_grid2(place,lst):
for i in range(len(lst)):
for j in range(len(lst[i])):
if place == lst[i][j]:
return lst.index(lst[i])
def find_grid1(place,lst):
for i in range(len(lst)):
for j in range(len(lst[i])):
if place == lst[i][j]:
return lst[i].index(place)
def print_lst(lst):
for i in range(len(lst)):
for j in range(len(lst[i]) - 2):
print(lst[i][j],'|', lst[i][j + 1],'|', lst[i][j + 2])
print('----------')
def tic_tac_toe():
lst = [[1,2,3],
[4,5,6],
[7,8,9]]
P1 = 0
P2 = 0
counter_loop = 0
_ = 0
new_lst = [1,2]
while True:
P1 = input('Player1 select "x" or "o" ? (Type in x or o):\n').lower()
if P1 == 'x':
print('Player2 is now "o"!\n')
P2 = 'o'
break
if P1 == 'o':
print('Player2 is now "x"!\n')
P2 = 'x'
break
else:
print('Try Again\n')
print_lst(lst)
while _ < len(lst):
for i in range(len(lst[_])):
if counter_loop == 9:
print("Tie!")
break
place_grid1 = input('Where would Player 1 like to place? : ')
if int(place_grid1) >= 10 or int(place_grid1) <= 0:
print('Try Again')
place_grid1 = input('Where would Player 1 like to place? : ')
break
place_grid = int(place_grid1)
counter_loop += 1
inner_index1 = find_grid1(place_grid,lst)
outer_index1 = find_grid2(place_grid,lst)
lst[outer_index1][inner_index1] = P1
print_lst(lst)
if horizontal_check(lst,P1,P2) == True:
print("Player 1 wins!!")
counter_loop = 9
break
if vertical_check(lst,P1,P2) == True:
print("Player 1 wins!!")
counter_loop = 9
break
if slant_check(lst,P1,P2) == True:
print("Player 1 wins!!")
counter_loop = 9
break
if counter_loop == 9:
print("Tie!")
break
place_grid2 = input('Where would Player 2 like to place? : ')
if int(place_grid2) >= 10 or int(place_grid2) <=0:
print('Try Again')
place_grid2 = input('Where would Player 2 like to place? : ')
break
place_gridy = int(place_grid2)
counter_loop += 1
inner_index2 = find_grid1(place_gridy,lst)
outer_index2 = find_grid2(place_gridy,lst)
lst[outer_index2][inner_index2] = P2
print_lst(lst)
if horizontal_check(lst,P1,P2) == True:
print("Player 2 wins!!")
counter_loop = 9
break
if vertical_check(lst,P1,P2) == True:
print("Player 2 wins!!")
counter_loop = 9
break
if slant_check(lst,P1,P2) == True:
print("Player 2 wins!!")
counter_loop = 9
break
if counter_loop == 9:
print("Tie!")
break
if counter_loop == 9:
break
_ += 1
tic_tac_toe()
Example 2: how to make tic tac toe in python
board = ["-", "-", "-",
"-", "-", "-",
"-", "-", "-"]
game_still_going = True
winner = None
current_player = "X"
def play_game():
display_board()
while game_still_going:
handle_turn(current_player)
check_if_game_over()
flip_player()
if winner == "X" or winner == "O":
print(winner + " won.")
elif winner is None:
print("Tie.")
def display_board():
print("\n")
print(board[0] + " | " + board[1] + " | " + board[2] + " 1 | 2 | 3")
print(board[3] + " | " + board[4] + " | " + board[5] + " 4 | 5 | 6")
print(board[6] + " | " + board[7] + " | " + board[8] + " 7 | 8 | 9")
print("\n")
def handle_turn(player):
print(player + "'s turn.")
position = input("Choose a position from 1-9: ")
valid = False
while not valid:
while position not in ["1", "2", "3", "4", "5", "6", "7", "8", "9"]:
position = input("Choose a position from 1-9: ")
position = int(position) - 1
if board[position] == "-":
valid = True
else:
print("You can't go there. Go again.")
board[position] = player
display_board()
def check_if_game_over():
check_for_winner()
check_for_tie()
def check_for_winner():
global winner
row_winner = check_rows()
column_winner = check_columns()
diagonal_winner = check_diagonals()
if row_winner:
winner = row_winner
elif column_winner:
winner = column_winner
elif diagonal_winner:
winner = diagonal_winner
else:
winner = None
def check_rows():
global game_still_going
row_1 = board[0] == board[1] == board[2] != "-"
row_2 = board[3] == board[4] == board[5] != "-"
row_3 = board[6] == board[7] == board[8] != "-"
if row_1 or row_2 or row_3:
game_still_going = False
if row_1:
return board[0]
elif row_2:
return board[3]
elif row_3:
return board[6]
else:
return None
def check_columns():
global game_still_going
column_1 = board[0] == board[3] == board[6] != "-"
column_2 = board[1] == board[4] == board[7] != "-"
column_3 = board[2] == board[5] == board[8] != "-"
if column_1 or column_2 or column_3:
game_still_going = False
if column_1:
return board[0]
elif column_2:
return board[1]
elif column_3:
return board[2]
else:
return None
def check_diagonals():
global game_still_going
diagonal_1 = board[0] == board[4] == board[8] != "-"
diagonal_2 = board[2] == board[4] == board[6] != "-"
if diagonal_1 or diagonal_2:
game_still_going = False
if diagonal_1:
return board[0]
elif diagonal_2:
return board[2]
else:
return None
def check_for_tie():
global game_still_going
if "-" not in board:
game_still_going = False
return True
else:
return False
def flip_player():
global current_player
if current_player == "X":
current_player = "O"
elif current_player == "O":
current_player = "X"
play_game()
Example 3: tic tac toe algorithm python
import random
def algoX(lisp):
'''my bacic stupid idiotic dunder-headded ape-brained algorithim'''
for i in range(len(lisp)):
if lisp[i] == 1:
lisp[i] = 'X'
elif lisp[i] == 2:
lisp[i] = 'O'
def zeros(list):
out = 0
for i in range(len(list)):
if list[i] == 0:
out += 1
return out
def count(list, simb):
out = 0
for i in range(len(list)):
if list[i] == simb:
out += 1
return out
if count(lisp[0:3], 'X') == 2 and zeros(lisp[0:3]) == 1:
lisp[0:3] = 'X','X','X'
elif count(lisp[3:6], 'X') == 2 and zeros(lisp[3:6]) == 1:
lisp[3:6] = 'X','X','X'
elif count(lisp[6:9], 'X') == 2 and zeros(lisp[6:9]) == 1:
lisp[6:9] = 'X','X','X'
elif count([lisp[0],
lisp[3],
lisp[6]],'X') == 2 and zeros([lisp[0],lisp[3],lisp[6]]) == 1:
for i in range(3):
lisp[i*3] = 'X'
elif count([lisp[1],
lisp[4],
lisp[7]],'X') == 2 and zeros([lisp[1],lisp[4],lisp[7]]) == 1:
for i in range(3):
lisp[(i*3)+1] = 'X'
elif count([lisp[2],
lisp[5],
lisp[8]],'X') == 2 and zeros([lisp[2],lisp[5],lisp[8]]) == 1:
for i in range(3):
lisp[(i*3)+2] = 'X'
elif count([lisp[0],
lisp[4],
lisp[8]],'X') == 2 and zeros([lisp[0],lisp[4],lisp[8]]) == 1:
for i in range(3):
lisp[(i*4)] = 'X'
elif count([lisp[2],
lisp[4],
lisp[6]],'X') == 2 and zeros([lisp[2],lisp[4],lisp[6]]) == 1:
lisp[2], lisp[4], lisp[6] = 'X','X','X'
else:
'''prevent loss'''
if count(lisp[0:3], 'O') == 2 and zeros(lisp[0:3]) == 1:
for i in range(3):
if lisp[i] == 0:
lisp[i] = 'X'
elif count(lisp[3:6], 'O') == 2 and zeros(lisp[3:6]) == 1:
for i in range(3,6):
if lisp[i] == 0:
lisp[i] = 'X'
elif count(lisp[6:9], 'O') == 2 and zeros(lisp[6:9]) == 1:
for i in range(6,9):
if lisp[i] == 0:
lisp[i] = 'X'
elif count([lisp[0],
lisp[3],
lisp[6]],'O') == 2 and zeros([lisp[0],lisp[3],lisp[6]]) == 1:
for i in range(3):
if lisp[i*3] == 0:
lisp[i*3] = 'X'
elif count([lisp[1],
lisp[4],
lisp[7]],'X') == 2 and zeros([lisp[1],lisp[4],lisp[7]]) == 1:
for i in range(3):
if lisp[(i*3)+1] == 0:
lisp[(i*3)+1] = 'X'
elif count([lisp[2],
lisp[5],
lisp[8]],'X') == 2 and zeros([lisp[2],lisp[5],lisp[8]]) == 1:
for i in range(3):
if lisp[(i*3)+2] == 0:
lisp[(i*3)+2] = 'X'
elif count([lisp[0],
lisp[4],
lisp[8]],'X') == 2 and zeros([lisp[0],lisp[4],lisp[8]]) == 1:
for i in range(3):
if lisp[i*4] == 0:
lisp[(i*4)] = 'X'
elif count([lisp[2],
lisp[4],
lisp[6]],'X') == 2 and zeros([lisp[2],lisp[4],lisp[6]]) == 1:
if lisp[2] == 0:
lisp[2] = 'X'
elif lisp[4] == 0:
lisp[4] = 'X'
elif lisp[6] == 0:
lisp[6] = 'X'
else:
'''regular options'''
if lisp[4] == 0:
lisp[4] = 'X'
else:
while True:
rand = random.randint(0,8)
if lisp[rand] == 'X' or lisp[rand] == 'O':
continue
else:
lisp[rand] = 'X'
break
return lisp