fix: general bugfixes
This commit is contained in:
+22
-64
@@ -1,10 +1,8 @@
|
|||||||
# TODO - __DONE__ variable symbol count needed to win
|
# TODO -
|
||||||
# - __DONE__ selecting the position of the new symbol by moving a cursor with arrow keys inside the playfield, press space to place the symbol
|
|
||||||
# - __DONE__ when a game ends, the winning symbols will blink a few times
|
|
||||||
|
|
||||||
# add: variable symbol count needed to win, selecting the position of the new symbol by moving a cursor with arrow keys inside the playfield, press space to place the symbol, when a game ends, the winning symbols will blink a few times
|
# add:
|
||||||
# fix: general bugfixes
|
# fix: general bugfixes
|
||||||
# update: comments
|
# update:
|
||||||
|
|
||||||
# algorithm steps
|
# algorithm steps
|
||||||
#
|
#
|
||||||
@@ -137,6 +135,8 @@ def _print(pf, name1, name2, blink = 0):
|
|||||||
print("o won!")
|
print("o won!")
|
||||||
elif blink == 3:
|
elif blink == 3:
|
||||||
print("x won!")
|
print("x won!")
|
||||||
|
elif blink == 4:
|
||||||
|
print("Draw!")
|
||||||
|
|
||||||
print(name1, "(o) vs", name2, "(x)")
|
print(name1, "(o) vs", name2, "(x)")
|
||||||
for i in range(len(pf)):
|
for i in range(len(pf)):
|
||||||
@@ -175,6 +175,8 @@ def gameState(pf, name1, name2, blink = 0):
|
|||||||
_print(pf, name1, name2, 2)
|
_print(pf, name1, name2, 2)
|
||||||
elif blink == 3:
|
elif blink == 3:
|
||||||
_print(pf, name1, name2, 3)
|
_print(pf, name1, name2, 3)
|
||||||
|
elif blink == 4:
|
||||||
|
_print(pf, name1, name2, 4)
|
||||||
|
|
||||||
# checks whether someone has won
|
# checks whether someone has won
|
||||||
def check(pf):
|
def check(pf):
|
||||||
@@ -255,106 +257,68 @@ def check(pf):
|
|||||||
for i in range(len(pf)):
|
for i in range(len(pf)):
|
||||||
for j in range(len(pf)):
|
for j in range(len(pf)):
|
||||||
if pf[i][j] == 'o':
|
if pf[i][j] == 'o':
|
||||||
try:
|
|
||||||
if pf[i-1][j-1] == 'o':
|
|
||||||
for k in range(symbolCount):
|
|
||||||
if pf[i-k][j-k] == 'o':
|
|
||||||
temp.append([i-k, j-k])
|
|
||||||
o += 1
|
|
||||||
else:
|
|
||||||
temp = []
|
|
||||||
o = 0
|
|
||||||
except IndexError:
|
|
||||||
continue
|
|
||||||
try:
|
|
||||||
if pf[i-1][j+1] == 'o':
|
|
||||||
for k in range(symbolCount):
|
|
||||||
if pf[i-k][j+k] == 'o':
|
|
||||||
temp.append([i-k, j+k])
|
|
||||||
o += 1
|
|
||||||
else:
|
|
||||||
temp = []
|
|
||||||
o = 0
|
|
||||||
except IndexError:
|
|
||||||
continue
|
|
||||||
try:
|
try:
|
||||||
if pf[i+1][j-1] == 'o':
|
if pf[i+1][j-1] == 'o':
|
||||||
for k in range(symbolCount):
|
for k in range(symbolCount):
|
||||||
if pf[i+k][j-k] == 'o':
|
if pf[i+k][j-k] == 'o' and 0 <= i+k < _size and 0 <= j-k < _size:
|
||||||
temp.append([i+k, j-k])
|
temp.append([i+k, j-k])
|
||||||
o += 1
|
o += 1
|
||||||
else:
|
else:
|
||||||
|
winLine = []
|
||||||
temp = []
|
temp = []
|
||||||
o = 0
|
o = 0
|
||||||
except IndexError:
|
except IndexError:
|
||||||
continue
|
pass
|
||||||
try:
|
try:
|
||||||
if pf[i+1][j+1] == 'o':
|
if pf[i+1][j+1] == 'o':
|
||||||
for k in range(symbolCount):
|
for k in range(symbolCount):
|
||||||
if pf[i+k][j+k] == 'o':
|
if pf[i+k][j+k] == 'o' and 0 <= i+k < _size and 0 <= j+k < _size:
|
||||||
temp.append([i+k, j+k])
|
temp.append([i+k, j+k])
|
||||||
o += 1
|
o += 1
|
||||||
else:
|
else:
|
||||||
|
winLine = []
|
||||||
temp = []
|
temp = []
|
||||||
o = 0
|
o = 0
|
||||||
except IndexError:
|
except IndexError:
|
||||||
continue
|
pass
|
||||||
if o == symbolCount:
|
if o == symbolCount:
|
||||||
winLine = temp
|
winLine = temp
|
||||||
return 0
|
return 0
|
||||||
elif o < symbolCount:
|
elif o < symbolCount:
|
||||||
|
winLine = []
|
||||||
temp = []
|
temp = []
|
||||||
o = 0
|
o = 0
|
||||||
|
|
||||||
if pf[i][j] == 'x':
|
if pf[i][j] == 'x':
|
||||||
try:
|
|
||||||
if pf[i-1][j-1] == 'x':
|
|
||||||
for k in range(symbolCount):
|
|
||||||
if pf[i-k][j-k] == 'x':
|
|
||||||
temp.append([i-k, j-k])
|
|
||||||
x += 1
|
|
||||||
else:
|
|
||||||
temp = []
|
|
||||||
x = 0
|
|
||||||
except IndexError:
|
|
||||||
continue
|
|
||||||
try:
|
|
||||||
if pf[i-1][j+1] == 'x':
|
|
||||||
for k in range(symbolCount):
|
|
||||||
if pf[i-k][j+k] == 'x':
|
|
||||||
temp.append([i-k, j+k])
|
|
||||||
x += 1
|
|
||||||
else:
|
|
||||||
temp = []
|
|
||||||
x = 0
|
|
||||||
except IndexError:
|
|
||||||
continue
|
|
||||||
try:
|
try:
|
||||||
if pf[i+1][j-1] == 'x':
|
if pf[i+1][j-1] == 'x':
|
||||||
for k in range(symbolCount):
|
for k in range(symbolCount):
|
||||||
if pf[i+k][j-k] == 'x':
|
if pf[i+k][j-k] == 'x' and 0 <= i+k < _size and 0 <= j-k < _size:
|
||||||
temp.append([i+k, j-k])
|
temp.append([i+k, j-k])
|
||||||
x += 1
|
x += 1
|
||||||
else:
|
else:
|
||||||
|
winLine = []
|
||||||
temp = []
|
temp = []
|
||||||
x = 0
|
x = 0
|
||||||
except IndexError:
|
except IndexError:
|
||||||
continue
|
pass
|
||||||
try:
|
try:
|
||||||
if pf[i+1][j+1] == 'x':
|
if pf[i+1][j+1] == 'x':
|
||||||
for k in range(symbolCount):
|
for k in range(symbolCount):
|
||||||
if pf[i+k][j+k] == 'x':
|
if pf[i+k][j+k] == 'x' and 0 <= i+k < _size and 0 <= j+k < _size:
|
||||||
temp.append([i+k, j+k])
|
temp.append([i+k, j+k])
|
||||||
x += 1
|
x += 1
|
||||||
else:
|
else:
|
||||||
|
winLine = []
|
||||||
temp = []
|
temp = []
|
||||||
x = 0
|
x = 0
|
||||||
except IndexError:
|
except IndexError:
|
||||||
continue
|
pass
|
||||||
if x == symbolCount:
|
if x == symbolCount:
|
||||||
winLine = temp
|
winLine = temp
|
||||||
return 1
|
return 1
|
||||||
elif x < symbolCount:
|
elif x < symbolCount:
|
||||||
|
winLine = []
|
||||||
temp = []
|
temp = []
|
||||||
x = 0
|
x = 0
|
||||||
|
|
||||||
@@ -457,24 +421,18 @@ def gameRound(pf, name1, name2):
|
|||||||
|
|
||||||
if won == 0:
|
if won == 0:
|
||||||
# 5.1 -> if yes -> end the game
|
# 5.1 -> if yes -> end the game
|
||||||
clearScreen()
|
|
||||||
gameState(pf, name1, name2, 1)
|
gameState(pf, name1, name2, 1)
|
||||||
print("o won!")
|
|
||||||
gameState(pf, name1, name2, 2)
|
gameState(pf, name1, name2, 2)
|
||||||
end = 1
|
end = 1
|
||||||
# 5.2 -> if no -> jump to step 1
|
# 5.2 -> if no -> jump to step 1
|
||||||
|
|
||||||
if won == 1:
|
if won == 1:
|
||||||
clearScreen()
|
|
||||||
gameState(pf, name1, name2, 1)
|
gameState(pf, name1, name2, 1)
|
||||||
print("x won!")
|
|
||||||
gameState(pf, name1, name2, 3)
|
gameState(pf, name1, name2, 3)
|
||||||
end = 1
|
end = 1
|
||||||
|
|
||||||
if won == 2:
|
if won == 2:
|
||||||
clearScreen()
|
gameState(pf, name1, name2, 4)
|
||||||
print("Draw!")
|
|
||||||
gameState(pf, name1, name2)
|
|
||||||
end = 1
|
end = 1
|
||||||
|
|
||||||
# driver code
|
# driver code
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
# TODO - __DONE__ variable symbol count needed to win
|
# TODO -
|
||||||
# - __DONE__ selecting the position of the new symbol by moving a cursor with arrow keys inside the playfield, press space to place the symbol
|
|
||||||
# - __DONE__ when a game ends, the winning symbols will blink a few times
|
|
||||||
|
|
||||||
# add: variable symbol count needed to win, selecting the position of the new symbol by moving a cursor with arrow keys inside the playfield, press space to place the symbol, when a game ends, the winning symbols will blink a few times
|
# add:
|
||||||
# fix: general bugfixes
|
# fix: general bugfixes
|
||||||
# update: comments
|
# update:
|
||||||
|
|
||||||
# algorithm steps
|
# algorithm steps
|
||||||
#
|
#
|
||||||
@@ -137,6 +135,8 @@ def _print(pf, name1, name2, blink = 0):
|
|||||||
print("o won!")
|
print("o won!")
|
||||||
elif blink == 3:
|
elif blink == 3:
|
||||||
print("x won!")
|
print("x won!")
|
||||||
|
elif blink == 4:
|
||||||
|
print("Draw!")
|
||||||
|
|
||||||
print(name1, "(o) vs", name2, "(x)")
|
print(name1, "(o) vs", name2, "(x)")
|
||||||
for i in range(len(pf)):
|
for i in range(len(pf)):
|
||||||
@@ -175,6 +175,8 @@ def gameState(pf, name1, name2, blink = 0):
|
|||||||
_print(pf, name1, name2, 2)
|
_print(pf, name1, name2, 2)
|
||||||
elif blink == 3:
|
elif blink == 3:
|
||||||
_print(pf, name1, name2, 3)
|
_print(pf, name1, name2, 3)
|
||||||
|
elif blink == 4:
|
||||||
|
_print(pf, name1, name2, 4)
|
||||||
|
|
||||||
# checks whether someone has won
|
# checks whether someone has won
|
||||||
def check(pf):
|
def check(pf):
|
||||||
@@ -255,106 +257,68 @@ def check(pf):
|
|||||||
for i in range(len(pf)):
|
for i in range(len(pf)):
|
||||||
for j in range(len(pf)):
|
for j in range(len(pf)):
|
||||||
if pf[i][j] == 'o':
|
if pf[i][j] == 'o':
|
||||||
try:
|
|
||||||
if pf[i-1][j-1] == 'o':
|
|
||||||
for k in range(symbolCount):
|
|
||||||
if pf[i-k][j-k] == 'o':
|
|
||||||
temp.append([i-k, j-k])
|
|
||||||
o += 1
|
|
||||||
else:
|
|
||||||
temp = []
|
|
||||||
o = 0
|
|
||||||
except IndexError:
|
|
||||||
continue
|
|
||||||
try:
|
|
||||||
if pf[i-1][j+1] == 'o':
|
|
||||||
for k in range(symbolCount):
|
|
||||||
if pf[i-k][j+k] == 'o':
|
|
||||||
temp.append([i-k, j+k])
|
|
||||||
o += 1
|
|
||||||
else:
|
|
||||||
temp = []
|
|
||||||
o = 0
|
|
||||||
except IndexError:
|
|
||||||
continue
|
|
||||||
try:
|
try:
|
||||||
if pf[i+1][j-1] == 'o':
|
if pf[i+1][j-1] == 'o':
|
||||||
for k in range(symbolCount):
|
for k in range(symbolCount):
|
||||||
if pf[i+k][j-k] == 'o':
|
if pf[i+k][j-k] == 'o' and 0 <= i+k < _size and 0 <= j-k < _size:
|
||||||
temp.append([i+k, j-k])
|
temp.append([i+k, j-k])
|
||||||
o += 1
|
o += 1
|
||||||
else:
|
else:
|
||||||
|
winLine = []
|
||||||
temp = []
|
temp = []
|
||||||
o = 0
|
o = 0
|
||||||
except IndexError:
|
except IndexError:
|
||||||
continue
|
pass
|
||||||
try:
|
try:
|
||||||
if pf[i+1][j+1] == 'o':
|
if pf[i+1][j+1] == 'o':
|
||||||
for k in range(symbolCount):
|
for k in range(symbolCount):
|
||||||
if pf[i+k][j+k] == 'o':
|
if pf[i+k][j+k] == 'o' and 0 <= i+k < _size and 0 <= j+k < _size:
|
||||||
temp.append([i+k, j+k])
|
temp.append([i+k, j+k])
|
||||||
o += 1
|
o += 1
|
||||||
else:
|
else:
|
||||||
|
winLine = []
|
||||||
temp = []
|
temp = []
|
||||||
o = 0
|
o = 0
|
||||||
except IndexError:
|
except IndexError:
|
||||||
continue
|
pass
|
||||||
if o == symbolCount:
|
if o == symbolCount:
|
||||||
winLine = temp
|
winLine = temp
|
||||||
return 0
|
return 0
|
||||||
elif o < symbolCount:
|
elif o < symbolCount:
|
||||||
|
winLine = []
|
||||||
temp = []
|
temp = []
|
||||||
o = 0
|
o = 0
|
||||||
|
|
||||||
if pf[i][j] == 'x':
|
if pf[i][j] == 'x':
|
||||||
try:
|
|
||||||
if pf[i-1][j-1] == 'x':
|
|
||||||
for k in range(symbolCount):
|
|
||||||
if pf[i-k][j-k] == 'x':
|
|
||||||
temp.append([i-k, j-k])
|
|
||||||
x += 1
|
|
||||||
else:
|
|
||||||
temp = []
|
|
||||||
x = 0
|
|
||||||
except IndexError:
|
|
||||||
continue
|
|
||||||
try:
|
|
||||||
if pf[i-1][j+1] == 'x':
|
|
||||||
for k in range(symbolCount):
|
|
||||||
if pf[i-k][j+k] == 'x':
|
|
||||||
temp.append([i-k, j+k])
|
|
||||||
x += 1
|
|
||||||
else:
|
|
||||||
temp = []
|
|
||||||
x = 0
|
|
||||||
except IndexError:
|
|
||||||
continue
|
|
||||||
try:
|
try:
|
||||||
if pf[i+1][j-1] == 'x':
|
if pf[i+1][j-1] == 'x':
|
||||||
for k in range(symbolCount):
|
for k in range(symbolCount):
|
||||||
if pf[i+k][j-k] == 'x':
|
if pf[i+k][j-k] == 'x' and 0 <= i+k < _size and 0 <= j-k < _size:
|
||||||
temp.append([i+k, j-k])
|
temp.append([i+k, j-k])
|
||||||
x += 1
|
x += 1
|
||||||
else:
|
else:
|
||||||
|
winLine = []
|
||||||
temp = []
|
temp = []
|
||||||
x = 0
|
x = 0
|
||||||
except IndexError:
|
except IndexError:
|
||||||
continue
|
pass
|
||||||
try:
|
try:
|
||||||
if pf[i+1][j+1] == 'x':
|
if pf[i+1][j+1] == 'x':
|
||||||
for k in range(symbolCount):
|
for k in range(symbolCount):
|
||||||
if pf[i+k][j+k] == 'x':
|
if pf[i+k][j+k] == 'x' and 0 <= i+k < _size and 0 <= j+k < _size:
|
||||||
temp.append([i+k, j+k])
|
temp.append([i+k, j+k])
|
||||||
x += 1
|
x += 1
|
||||||
else:
|
else:
|
||||||
|
winLine = []
|
||||||
temp = []
|
temp = []
|
||||||
x = 0
|
x = 0
|
||||||
except IndexError:
|
except IndexError:
|
||||||
continue
|
pass
|
||||||
if x == symbolCount:
|
if x == symbolCount:
|
||||||
winLine = temp
|
winLine = temp
|
||||||
return 1
|
return 1
|
||||||
elif x < symbolCount:
|
elif x < symbolCount:
|
||||||
|
winLine = []
|
||||||
temp = []
|
temp = []
|
||||||
x = 0
|
x = 0
|
||||||
|
|
||||||
@@ -457,24 +421,18 @@ def gameRound(pf, name1, name2):
|
|||||||
|
|
||||||
if won == 0:
|
if won == 0:
|
||||||
# 5.1 -> if yes -> end the game
|
# 5.1 -> if yes -> end the game
|
||||||
clearScreen()
|
|
||||||
gameState(pf, name1, name2, 1)
|
gameState(pf, name1, name2, 1)
|
||||||
print("o won!")
|
|
||||||
gameState(pf, name1, name2, 2)
|
gameState(pf, name1, name2, 2)
|
||||||
end = 1
|
end = 1
|
||||||
# 5.2 -> if no -> jump to step 1
|
# 5.2 -> if no -> jump to step 1
|
||||||
|
|
||||||
if won == 1:
|
if won == 1:
|
||||||
clearScreen()
|
|
||||||
gameState(pf, name1, name2, 1)
|
gameState(pf, name1, name2, 1)
|
||||||
print("x won!")
|
|
||||||
gameState(pf, name1, name2, 3)
|
gameState(pf, name1, name2, 3)
|
||||||
end = 1
|
end = 1
|
||||||
|
|
||||||
if won == 2:
|
if won == 2:
|
||||||
clearScreen()
|
gameState(pf, name1, name2, 4)
|
||||||
print("Draw!")
|
|
||||||
gameState(pf, name1, name2)
|
|
||||||
end = 1
|
end = 1
|
||||||
|
|
||||||
# driver code
|
# driver code
|
||||||
Reference in New Issue
Block a user