from tkinter import * from random import * from time import sleep window = Tk() window.title('KEEPER') canvas = Canvas(window, width=300, height=600, bg='green') canvas.pack() canvas.create_rectangle((0, 550), (300, 600), fill='#FFFFFF') # colors = ['red', 'blue'] ball = canvas.create_oval((135, 0), (165, 30), fill="#{:06x}".format(randrange(0, 0xFFFFFF))) keeper = canvas.create_rectangle((0, 550), (60, 570), fill='brown') keep_count = 0 # КОЛИЧЕСТВО ПОЙМАННЫХ МЯЧЕЙ count_table = canvas.create_text(250, 580, text=str(keep_count), font='Georgia 16', fill='red') # ДВИЖЕНИЕ МЯЧА ball_speed = 5 def move_ball(): global keep_count, flag canvas.move(ball, 0, ball_speed) ball_center = canvas.coords(ball)[0] + 15 keeper_coords = canvas.coords(keeper) if canvas.coords(ball)[3] - 15 >= 550: if keeper_coords[0] < ball_center < keeper_coords[2]: keep_count += 1 canvas.itemconfig(count_table, text=str(keep_count)) ball_x = randint(30, 270) else: flag = True # ДВИЖЕНИЕ ПЛАТФОРМЫ keeper_speed = 0 def move_keeper(): global keeper_speed if keeper_speed == 5 and canvas.coords(keeper)[2] < 295 or keeper_speed == -5 and canvas.coords(keeper)[0] > 5: canvas.move(keeper, keeper_speed, 0) # ОБРАБОТКА НАЖАТИЙ КЛАВИШ def key_handler(event): global keeper_speed if event.keysym == 'Left': keeper_speed = -5 elif event.keysym == 'Right': keeper_speed = 5 elif event.keysym == 'space': keeper_speed = 0 # "ГЛАВНАЯ" ФУНКЦИЯ flag = False def main(): move_ball() move_keeper() if flag: pass # ПОТОМ ВПИСАТЬ ВСТАВКУ ТЕКСТА "game over" else: main() window.after(10, main) main() canvas.bind("", key_handler) canvas.focus_set() move_ball() window.mainloop()