Чтобы заставить цикл while работать, вы хотите поместить инициализацию счетчика (count = 0
) вне цикла while.
Также, если вы хотите выйти из цикла, когда счетчик достигнет 8, вам нужночтобы позволить ему проверить количество (if count >= 8
).Использование elif
означает, что это не будет проверяться, если if
-условие равно True
.
def clicks():
game_running = True
count = 0 # Initialize count before while loop
while game_running:
first_click = win.getMouse()
x_cell1 = int(first_click.getX()//50)
y_cell1 = int(first_click.getY()//50)
(first_r, first_c) = click_loc(first_click)
first_r.undraw()
second_click = win.getMouse()
x_cell2 = int(second_click.getX()//50)
y_cell2 = int(second_click.getY()//50)
(second_r, second_c) = click_loc(second_click)
second_r.undraw()
rgb1 = circles[y_cell1][x_cell1]
rgb2 = circles[y_cell2][x_cell2]
if rgb1[0] == rgb2[0] and rgb1[1] == rgb2[1] and rgb1[2] == rgb2[2]:
count += 1
if count >= 8: # use if instead of elif here
game_running = False
else:
first_r.draw(win)
second_r.draw(win)
win.close()
В качестве незначительного предложения, которое не должно иметь значения в вашем случае, но которое я считаю более обоснованным, следует использовать «равно или больше» >=
вместо «равно» ==
.