1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
| # -*- coding: cp1252 -*-
from Tkinter import *
from random import randrange
#-------------------------------------------------
def start_it():
global flag
if flag == 0:
flag = 1
avancer()
def stop_it():
global flag
flag = 0
def avancer():
global x1,y1,x2,y2,x3,y3,x4,y4, dx1,dy1,dx2,dy2,dx3,dy3,dx4,dy4
x1,y1=x1+dx1,y1+dy1
x2,y2=x2+dx2,y2+dy2
x3,y3=x3+dx3,y3+dy3
x4,y4=x4+dx4,y4+dy4
move_redball()
move_magball()
move_yelball()
move_brownball()
can.coords(redball,x1,y1,x1+20,y1+20)
can.coords(magball,x2,y2,x2+20,y2+20)
can.coords(yelball,x3,y3,x3+20,y3+20)
can.coords(brownball,x4,y4,x4+20,y4+20)
if flag == 1:
fen.after(50,avancer)
def move_redball():
global x1,y1,dx1,dy1,liste
if x1>270:
dx1=-dx1
dy1=liste[randrange(8)]
if y1>270:
dy1=-dy1
dx1=liste[randrange(8)]
if x1<10:
dx1=-dx1
dy1=liste[randrange(8)]
if y1<10:
dy1=-dy1
dx1=liste[randrange(8)]
if (x1>270) and (y1 > 270):
dx1,dy1=-20,-10
if (x1>270) and (y1 < 10):
dx1,dy1=-20,10
if (x1 <10) and (y1 > 270):
dx1,dy1=20,-10
if (x1<10) and (y1< 10):
dx1,dy1=20,10
def move_magball():
global x2,y2,dx2,dy2,liste
if x2>270:
dx2=-dx2
dy2=liste[randrange(8)]
if y2>270:
dy2=-dy2
dx2=liste[randrange(8)]
if x2<10:
dx2=-dx2
dy2=liste[randrange(8)]
if y2<10:
dy2=-dy2
dx2=liste[randrange(8)]
if (x2>270) and (y2 > 270):
dx2,dy2=-20,-10
if (x2>270) and (y2 < 10):
dx2,dy2=-20,10
if (x2 <10) and (y2 > 270):
dx2,dy2=20,-10
if (x2<10) and (y2< 10):
dx2,dy2=20,10
def move_yelball():
global x3,y3,dx3,dy3,liste
if x3>270:
dx3=-dx3
dy3=liste[randrange(8)]
if y3>270:
dy3=-dy3
dx3=liste[randrange(8)]
if x3<10:
dx3=-dx3
dy3=liste[randrange(8)]
if y3<10:
dy3=-dy3
dx3=liste[randrange(8)]
if (x3>270) and (y3 > 270):
dx3,dy3=-20,-10
if (x3>270) and (y3 < 10):
dx3,dy3=-20,10
if (x3 <10) and (y3 > 270):
dx3,dy3=20,-10
if (x3<10) and (y3< 10):
dx3,dy3=20,10
def move_brownball():
global x4,y4,dx4,dy4,liste
if x4>270:
dx4=-dx4
dy4=liste[randrange(8)]
if y4>270:
dy4=-dy4
dx4=liste[randrange(8)]
if x4<10:
dx4=-dx4
dy4=liste[randrange(8)]
if y4<10:
dy4=-dy4
dx4=liste[randrange(8)]
if (x4>270) and (y4 > 270):
dx4,dy4=-20,-10
if (x4>270) and (y4 < 10):
dx4,dy4=-20,10
if (x4 <10) and (y4 > 270):
dx4,dy4=20,-10
if (x4<10) and (y4< 10):
dx4,dy4=20,10
#------------------------------------------------
fen= Tk()
x1,y1,x2,y2,x3,y3,x4,y4=20,20,260,20,260,260,20,260
dx1,dy1=20,20
dx2,dy2=-20,20
dx3,dy3=-20,-20
dx4,dy4=20,-20
flag = 0
liste=[-5,-10,-15,-20,5,10,15,20]
can=Canvas(fen,height=300,width=300,bg='white')
can.grid(row=0,column=0,columnspan=2)
redball=can.create_oval(20,20,40,40,width=2,fill='red')
magball=can.create_oval(260,20,280,40,width=2,fill='magenta')
brownball=can.create_oval(20,260,40,280,width=2,fill='maroon')
yelball=can.create_oval(260,260,280,280,width=2,fill='yellow')
Button(fen,text='Start',fg= 'blue',command=start_it).grid(row=1,column=0,sticky=E,padx=2)
Button(fen,text='Stop',fg = 'red', command=stop_it).grid(row=1,column=1,sticky=W,padx=2)
fen.mainloop() |
Partager