boris-vlasenko

test_balls1

Aug 23rd, 2015
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.06 KB | None | 0 0
  1. from tkinter import *
  2. from random import randrange as rnd, choice
  3. import time
  4.  
  5. root = Tk()
  6. root.geometry('800x600')
  7. root.title("Игра поймай шарик")
  8. canv = Canvas(root, bg='lightblue')
  9. canv.pack(fill=BOTH, expand=1)
  10.  
  11. colors = ['lightyellow', 'lightgray', 'gray', 'pink', 'violet', 'brown', 'red', 'orange', 'yellow', 'green', 'cyan',
  12.           'blue', 'magenta', 'black', 'gray', 'lightgreen']
  13. x = 0
  14. y = 0
  15. r = 0
  16. points = 0
  17. miss = 0
  18. zero = 0
  19. shut = 0
  20.  
  21.  
  22. def new_ball():
  23.     global x, y, r, zero, res, shut
  24.     canv.delete(ALL)
  25.     res = canv.create_text(300, 20, text="заработал " + str(points) + " очков"
  26.                                          + '/' + "промазал " + str(miss) + " раз" + '/' +
  27.                                          "проворонил " + str(zero) + " шаров", font='Arial 15')
  28.     x = rnd(100, 700)
  29.     y = rnd(100, 500)
  30.     r = rnd(20, 50)
  31.     target = canv.create_oval(x - r, y - r, x + r, y + r, fill=choice(colors), width=0)
  32.     if shut < 20:
  33.         root.after(rnd(500, 3000), new_ball)
  34.     else:
  35.         canv.delete(ALL)
  36.         res = canv.create_text(350, 250, text="Вы сделали " + str(shut) + " попыток! Вы набрали: " +
  37.                                               str(points) + "балла(ов)", font='Arial 20')
  38.  
  39.         zero += 1
  40.  
  41.  
  42. def click(event):
  43.     global points, miss, zero, res, shut
  44.     if abs(x - event.x) < r / 2 and abs(y - event.y) < r / 2:
  45.         points += 2
  46.         zero -= 1
  47.     elif abs(x - event.x) < r and abs(y - event.y) < r:
  48.         points += 1
  49.         zero -= 1
  50.     else:
  51.         miss += 1
  52.         canv.delete(ALL)
  53.         res = canv.create_text(300, 20, text="заработал " + str(points) + " очков"
  54.                                              + '/' + "промазал " + str(miss) + " раз" + '/' +
  55.                                              "проворонил " + str(zero) + " шаров", font='Arial 15')
  56.         shut += 1
  57.  
  58.  
  59. root.after(1000, new_ball)
  60. canv.bind('<Button-1>', click)
  61. mainloop()
Advertisement
Add Comment
Please, Sign In to add comment