Example 1: tic tac toe python easy
def tic_tac_toe():
board = [1, 2, 3, 4, 5, 6, 7, 8, 9]
end = False
win_commbinations = ((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 draw():
print(board[0], board[1], board[2])
print(board[3], board[4], board[5])
print(board[6], board[7], board[8])
print()
def p1():
n = choose_number()
if board[n] == "X" or board[n] == "O":
print("\nYou can't go there. Try again")
p1()
else:
board[n] = "X"
def p2():
n = choose_number()
if board[n] == "X" or board[n] == "O":
print("\nYou can't go there. Try again")
p2()
else:
board[n] = "O"
def choose_number():
while True:
while True:
a = input()
try:
a = int(a)
a -= 1
if a in range(0, 9):
return a
else:
print("\nThat's not on the board. Try again")
continue
except ValueError:
print("\nThat's not a number. Try again")
continue
def check_board():
count = 0
for a in win_commbinations:
if board[a[0]] == board[a[1]] == board[a[2]] == "X":
print("Player 1 Wins!\n")
print("Congratulations!\n")
return True
if board[a[0]] == board[a[1]] == board[a[2]] == "O":
print("Player 2 Wins!\n")
print("Congratulations!\n")
return True
for a in range(9):
if board[a] == "X" or board[a] == "O":
count += 1
if count == 9:
print("The game ends in a Tie\n")
return True
while not end:
draw()
end = check_board()
if end == True:
break
print("Player 1 choose where to place a cross")
p1()
print()
draw()
end = check_board()
if end == True:
break
print("Player 2 choose where to place a nought")
p2()
print()
if input("Play again (y/n)\n") == "y":
print()
tic_tac_toe()
tic_tac_toe()
Example 2: 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