Jun-21-2021, 08:49 PM
Hello! i wrote tetris in python using pygame the other day and am having a strange problem. There is a section of code that does not seem to run. here is the relevant function
block near the top of the function everything runs fine. Any idea what is happening? thanks!
def update():
#time.time()
global level, currTimeSD, currTimeBI, currTimeFD, currTimeSAC, timeShiftDown, timeFastDrop, timeBetweenInput, timeShiftAfterClear, kLeft, kRight, kDown, xCursor, yCursor, currMinoRot, currMino, swapMino, currMinoShape, swapMinoShape, alreadySwapped, minoActive, shiftAfterClear
if time.time() < currTimeSD:
currTimeSD = 0
if time.time() < currTimeBI:
currTimeBI = 0
if time.time() < currTimeFD:
currTimeFD = 0
if time.time() < currTimeSAC:
currTimeSAC = 0
if shiftAfterClear == True:
if time.time() - currTimeSAC >= timeShiftAfterClear:
print("in shift after clear")
currTimeSAC = time.time()
shiftAfterClear = False
shiftDownBoard()
currMinoShape = 0
currMino = generateRandomMino()
minoActive = True
return
if time.time() - currTimeBI >= timeBetweenInput and anyKeyTrue():
currTimeBI = time.time()
if kLeft == True and xCursor != 0:
if checkSafeShiftX(-1) == True:
xCursor -= 1
if kRight == True and xCursor != 9:
if checkSafeShiftX(1) == True:
xCursor += 1
if kQ == True:
if currMinoRot == 0:
safe, newX = checkSafeRot(3)
if safe:
xCursor = newX
currMinoRot = 3
else:
safe, newX = checkSafeRot(currMinoRot - 1)
if safe:
xCursor = newX
currMinoRot -= 1
if kW == True:
if currMinoRot == 3:
safe, newX = checkSafeRot(0)
if safe:
xCursor = newX
currMinoRot = 0
else:
safe, newX = checkSafeRot(currMinoRot + 1)
if safe:
xCursor = newX
currMinoRot += 1
if kE == True and alreadySwapped == False:
alreadySwapped = True
if swapMinoShape == 0:
swapMinoShape = currMinoShape
swapMino = currMino
currMino = generateRandomMino()
else:
swpms = swapMinoShape
swpm = swapMino
swapMinoShape = currMinoShape
swapMino = currMino
currMinoShape = swpms
currMino = swpm
xCursor, yCursor = generateStartCoord()
if kUp == True:
dropDownAndAdd()
alreadySwapped = False
checkCleared = clearBoard()
if checkCleared == True:
minoActive = False
shiftAfterClear = True
currTimeSAC = time.time()
else:
currMinoShape = 0
currMino = generateRandomMino()
if kEsc == True:
print("Goodbye!")
exit()
if (time.time() - currTimeSD >= timeShiftDown) or (time.time() - currTimeFD >= timeFastDrop and kDown == True):
currTimeFD = time.time()
currTimeSD = time.time()
if checkSafeShiftY() == True:
yCursor += 1
else:
print("hi there", flush = True)
addToBoard()
for a in range(10):
if board[a][0] == 1:
print("Sorry, you lose!")
exit()
alreadySwapped = False
checkCleared = clearBoard()
print("whatup", flush = True)
if checkCleared == True:
print("genius", flush=True)
print("whatup1", flush = True)
tmpLevel = level
level = 5 #int(linesCleared / 10)
if tmpLevel != level:
if timeShiftDown - 0.08 < 0.03:
timeShiftDown = 0.03
else:
timeShiftDown -= 0.08
minoActive = False
shiftAfterClear = True
currTimeSAC = time.time()
else:
currMinoShape = 0
currMino = generateRandomMino()
returndown near the bottom of the code this block: print("genius", flush=True)
print("whatup1", flush = True)
tmpLevel = level
level = 5 #int(linesCleared / 10)
if tmpLevel != level:
if timeShiftDown - 0.08 < 0.03:
timeShiftDown = 0.03
else:
timeShiftDown -= 0.08does not run. when i move it up to the if shiftAfterClear == True:
block near the top of the function everything runs fine. Any idea what is happening? thanks!
