There really is no hope of making this code even half-way decent without spending the time to rewrite them all properly. Don't want to do any of that
204 lines
3.9 KiB
Python
Executable File
204 lines
3.9 KiB
Python
Executable File
# TICTACTOE V 1.0
|
|
|
|
import time
|
|
|
|
# Variables5
|
|
global bd
|
|
bd = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
|
|
global filled_fields
|
|
filled_fields = 0
|
|
global player
|
|
global playershow
|
|
playershow = 1
|
|
player = 1
|
|
global play
|
|
play = 1
|
|
|
|
|
|
# FUNCTIONS
|
|
# --------------------
|
|
def inputs():
|
|
global playershow
|
|
global bd
|
|
print("It's the turn of player", playershow)
|
|
m = input("Where do you want to put your mark? ")
|
|
if len(m) > 1:
|
|
sp = m[0]
|
|
zl = m[1]
|
|
z = int(zl) - 1
|
|
s = ord(sp) - 65
|
|
if bd[z][s] > 0:
|
|
print(
|
|
"""
|
|
THAT FIELD IS ALREADY TAKEN, CHOOSE DIFFERENT ONE!
|
|
"""
|
|
)
|
|
else:
|
|
inputremap(z, s)
|
|
else:
|
|
print(
|
|
"""
|
|
PLEASE TYPE IN A LEGIT COORDINATE:
|
|
FORM: Coordinate Y Coordinate X --> Ex. A1/A2
|
|
"""
|
|
)
|
|
|
|
|
|
def inputremap(z, s):
|
|
global player
|
|
global playershow
|
|
global bd
|
|
bd[z][s] = player
|
|
if playershow == 1:
|
|
playershow = 2
|
|
player = 7
|
|
else:
|
|
playershow = 1
|
|
player = 1
|
|
global filled_fields
|
|
filled_fields += 1
|
|
full(filled_fields)
|
|
|
|
|
|
def winning():
|
|
global play
|
|
global bd
|
|
x = 0
|
|
y = 0
|
|
global go
|
|
go = 1
|
|
count = 0
|
|
print(
|
|
"""
|
|
checking for winner
|
|
"""
|
|
)
|
|
while go == 1:
|
|
if sum(bd[x]) == 3:
|
|
go = 0
|
|
play = 0
|
|
print("The Winner is player 1")
|
|
elif sum(bd[x]) == 21:
|
|
go = 0
|
|
play = 0
|
|
print("The Winner is player 2")
|
|
elif bd[0][y] + bd[1][y] + bd[2][y] == 3:
|
|
go = 0
|
|
play = 0
|
|
print("The Winner is player 1")
|
|
elif bd[0][y] + bd[1][y] + bd[2][y] == 21:
|
|
go = 0
|
|
play = 0
|
|
print("The Winner is player 2")
|
|
else:
|
|
x += 1
|
|
y += 1
|
|
if count >= 2:
|
|
go = 0
|
|
print(
|
|
"""no winner yet
|
|
"""
|
|
)
|
|
else:
|
|
count += 1
|
|
|
|
|
|
def full(filled_field):
|
|
global bd
|
|
if filled_field == 9:
|
|
print("draw")
|
|
global play
|
|
play = 0
|
|
else:
|
|
winning()
|
|
|
|
|
|
# BOARD DRAWING
|
|
def board_draw():
|
|
print("\n")
|
|
xx = 0
|
|
yy = 0
|
|
global bd
|
|
while yy < 3:
|
|
while xx < 3:
|
|
if bd[xx][yy] == 0:
|
|
print(" ", end=" ")
|
|
elif bd[xx][yy] == 1:
|
|
print(" X ", end=" ")
|
|
elif bd[xx][yy] == 7:
|
|
print(" O ", end=" ")
|
|
else:
|
|
print(""" CRITICAL ERROR""")
|
|
if xx < 2:
|
|
print("|", end=" ")
|
|
else:
|
|
print(" ", end=" ")
|
|
xx += 1
|
|
print(" ")
|
|
xx = 0
|
|
if yy < 2:
|
|
print("----------------------")
|
|
else:
|
|
print(" ")
|
|
yy += 1
|
|
|
|
|
|
# MAIN CYCLE
|
|
print(50 * ("\n"))
|
|
|
|
print(
|
|
"""
|
|
|
|
------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
TIC TAC TOE
|
|
===========
|
|
V 1.0
|
|
V 2021.06.18
|
|
|
|
|
|
|
|
by Janis Hutz
|
|
"""
|
|
)
|
|
time.sleep(2)
|
|
print("starting...")
|
|
time.sleep(3)
|
|
print("\n\n\n")
|
|
goahead = 1
|
|
print(
|
|
"""
|
|
| |
|
|
----------------
|
|
| |
|
|
----------------
|
|
| |
|
|
"""
|
|
)
|
|
while goahead == 1:
|
|
while play == 1:
|
|
inputs()
|
|
board_draw()
|
|
time.sleep(2)
|
|
print(
|
|
"""
|
|
REPLAY?
|
|
"""
|
|
)
|
|
i = input("""Choose: (y/n)""")
|
|
if i == "y":
|
|
goahead = 1
|
|
play = 1
|
|
else:
|
|
goahead = 0
|
|
print(
|
|
"""
|
|
|
|
GOOD BYE!
|
|
|
|
"""
|
|
)
|