Facebook
From Stepan, 1 Year ago, written in Python.
Embed
Download Paste or View Raw
Hits: 89
  1. from tkinter import *
  2. from random import *
  3. from time import sleep
  4.  
  5. window = Tk()
  6. window.title('KEEPER')
  7.  
  8. canvas = Canvas(window, width=300, height=600, bg='green')
  9. canvas.pack()
  10.  
  11. canvas.create_rectangle((0, 550), (300, 600), fill='#FFFFFF')
  12.  
  13. #  colors = ['red', 'blue']
  14. ball = canvas.create_oval((135, 0), (165, 30), fill="#{:06x}".format(randrange(0, 0xFFFFFF)))
  15. keeper = canvas.create_rectangle((0, 550), (60, 570), fill='brown')
  16.  
  17. keep_count = 0  # КОЛИЧЕСТВО ПОЙМАННЫХ МЯЧЕЙ
  18. count_table = canvas.create_text(250, 580, text=str(keep_count), font='Georgia 16', fill='red')
  19.  
  20.  
  21. # ДВИЖЕНИЕ МЯЧА
  22. ball_speed = 5
  23. def move_ball():
  24.     global keep_count, flag
  25.     canvas.move(ball, 0, ball_speed)
  26.     ball_center = canvas.coords(ball)[0] + 15
  27.     keeper_coords = canvas.coords(keeper)
  28.  
  29.     if canvas.coords(ball)[3] - 15 >= 550:
  30.         if keeper_coords[0] < ball_center < keeper_coords[2]:
  31.             keep_count += 1
  32.             canvas.itemconfig(count_table, text=str(keep_count))
  33.             ball_x = randint(30, 270)
  34.         else:
  35.             flag = True
  36.  
  37.  
  38.  
  39. # ДВИЖЕНИЕ ПЛАТФОРМЫ
  40. keeper_speed = 0
  41. def move_keeper():
  42.     global keeper_speed
  43.     if keeper_speed == 5 and canvas.coords(keeper)[2] < 295 or keeper_speed == -5 and canvas.coords(keeper)[0] > 5:
  44.         canvas.move(keeper, keeper_speed, 0)
  45.  
  46.  
  47. # ОБРАБОТКА НАЖАТИЙ КЛАВИШ
  48. def key_handler(event):
  49.     global keeper_speed
  50.     if event.keysym == 'Left':
  51.         keeper_speed = -5
  52.     elif event.keysym == 'Right':
  53.         keeper_speed = 5
  54.     elif event.keysym == 'space':
  55.         keeper_speed = 0
  56.  
  57.  
  58.  
  59. # "ГЛАВНАЯ" ФУНКЦИЯ
  60. flag = False
  61. def main():
  62.     move_ball()
  63.     move_keeper()
  64.     if flag:
  65.         pass  # ПОТОМ ВПИСАТЬ ВСТАВКУ ТЕКСТА "game over"
  66.     else:
  67.         main()
  68.         window.after(10, main)
  69.  
  70. main()
  71.  
  72. canvas.bind("<KeyPress>", key_handler)
  73. canvas.focus_set()
  74.  
  75. move_ball()
  76.  
  77. window.mainloop()
  78.