j'ai beau essaillé mais je n'arrive pas à transformer mes sriptes en executable pour windows
alors voila je vous presente un scripte et est ce que l'un de vous pourait me le compiler et me le renvoyer ??
merci d'avance
voila le scripte
###############################################################Debut
from Tkinter import*
import Pmw
from random import randrange
from math import*
import tkMessageBox
import sys
import os
import pickle
#######################################################
def graphee():
global graphe,graphe1,gg,feb2,rebondinstant
graphe1=int(graphe.get())
if graphe1==1:
if len(rebondinstant)!=0:
gg=1
commentaire.configure(text='graphique créé',bg='blue')
creat_graph()
else:
if len(rebondinstant)!=0:
commentaire.configure(text='pas de graphique',bg='blue')
fen2.destroy()
gg=0
def creat_graph():
global gg,boule,dialogue,diametre,nomboule,var,valuex,valuey,time,fen2,moyene,rebondmax,rebondinstant,timet
if gg==0:
can2.delete(ALL)
if gg==1:
fen2=Tk()
fen2.title('Graphique a t='+str(var-5)+' secondes')
can2=Canvas(fen2,width=500,height=500,bg='black')
gg=2
can2.grid(row=2,column=1,sticky=N)
if gg==2:
hau=0
linered1=0
can2.delete(ALL)
can2.create_line (5,490,5,5,fill='blue')
can2.create_line (5,490,500,490,fill='blue')
for i in range(0,len(rebondinstant)):
linered1=rebondinstant[i]
linered=490/linered1
hau=linered
for i in range(0,linered):
can2.create_line (0,hau,10,hau,fill='red')
hau=hau+linered
lar=0
intercalex=0
linered=500/(len(timet)+1)
lar=linered
for i in range(0,linered+1):
can2.create_line (lar,495,lar,485,fill='red')
lar=lar+linered
gh=0
hau=0
j=len(rebondinstant)-1
while gh<len(timet):
hau=hau+linered
can2.create_oval(hau,490-(rebondinstant[gh]*490/linered1),hau+2,490-(rebondinstant[gh]*490/linered1)+2,fill='red',width=1)
if gh==0:
can2.create_line(5,490,hau+4,490-(rebondinstant[gh]*490/linered1)+4,fill='green',width=1)
else:
can2.create_line(hau-linered+2,490-(rebondinstant[gh-1]*490/linered1)+2,hau+2,490-(rebondinstant[gh]*490/linered1)+2,fill='green',width=1)
gh=gh+1
fen2.mainloop()
def gravitee():
global gravite1,gravite
gravite1=int(gravite.get())
if gravite1==1:
commentaire.configure(text='gravité activés',bg='red')
else:
commentaire.configure(text='pas de gravité',bg='blue')
def frote():
global frot,frotement,s2
frot=int(frotement.get())
if frot==0:
commentaire.configure(text='frotements desactivés',bg='blue')
s2.destroy()
else:
commentaire.configure(text='frotements activés',bg='red')
s2=Scale(can1,label='force
de frotement',bg='dark
red',state=ACTIVE,orient=HORIZONTAL,font=('trebuchtet',7,'bold'),fg='white',
from_=1010, to =990,command=frotementss)
s2.pack(padx=5,pady=5,side=BOTTOM)
s2.set(1)
def pause():
global statue
if statue==1:
statue=0
commentaire.configure(text='Pause enlevée',bg='light blue')
Bouton_pause.configure(text='pause')
_lancer()
elif statue==0:
statue=1
Bouton_lancer.configure(state=DISABLED)
Bouton_pause.configure(text='retirer pause')
commentaire.configure(text='Pause',bg='red')
def _lancer():
global
statue,x,y,savex,savey,gravite1,couleur,coulchoix,Masse,diametret,boule,dialogue,diametre,H,L,h,l,g,nomboule,var,valuex,valuey,time,nombreaplacer,vitessex,vitessey,frot,frotvalue,rebondc,dgrx,drgy,line1,line,couleur,nrline,angx,angy,hfirste,rebondinstant,timet
Bouton_lancer.configure(state=DISABLED)
Bouton_pause.configure(state=ACTIVE)
if gravite1==0:
if frot==0:
for i in range(0,len(boule)):
savex[i],savey[i]=x[i],y[i]
x[i],y[i]=x[i]+vitessex[i],y[i]+vitessey[i]
if x[i]>=(H-(diametre/2)):vitessex[i],rebondc=-vitessex[i],rebondc+1
if x[i]<=(diametre/4):vitessex[i],rebondc=-vitessex[i],rebondc+1
if y[i]>=(L-(diametre/2)):vitessey[i],rebondc=-vitessey[i],rebondc+1
if y[i]<=(diametre/4):vitessey[i],rebondc=-vitessey[i],rebondc+1
for j in range (0,len(boule)):
if j!=i:
d=sqrt((-x[i]+x[j])**2+(-y[i]+y[j])**2)
if
d<=diametre/2:vitessex[i],vitessey[i],vitessey[j],vitessex[j],rebondc=vitessex[j],vitessey[j],vitessey[i],vitessex[i],rebondc+1
can.coords(boule[i],x[i],y[i],x[i]+(diametre/2),y[i]+(diametre/2))
elif frot==1:
for i in range(0,len(boule)):
savex[i],savey[i]=x[i],y[i]
x[i],y[i]=x[i]+vitessex[i],y[i]+vitessey[i]
if
x[i]>=(H-(diametre/2)):vitessex[i],rebondc=-vitessex[i]*frotvalue,rebondc+1
if
x[i]<=(diametre/4):vitessex[i],rebondc=-vitessex[i]*frotvalue,rebondc+1
if
y[i]>=(L-(diametre/2)):vitessey[i],rebondc=-vitessey[i]*frotvalue,rebondc+1
if
y[i]<=(diametre/4):vitessey[i],rebondc=-vitessey[i]*frotvalue,rebondc+1
vitessex[i],vitessey[i]=vitessex[i]*frotvalue,vitessey[i]*frotvalue
for j in range (0,len(boule)):
if j!=i:
d=sqrt((-x[i]+x[j])**2+(-y[i]+y[j])**2)
if
d<=diametre/2:vitessex[i],vitessey[i],vitessey[j],vitessex[j],rebondc=vitessex[j]*frotvalue,vitessey[j]*frotvalue,vitessey[i]*frotvalue,vitessex[i]*frotvalue,rebondc+1
for h in range (0,len(boule)):
if -0.3>vitessex[h]>0.3 or
-0.3>vitessey[h]>0.3:vitessex[h],vitessey[h]=0,0
can.coords(boule[i],x[i],y[i],x[i]+(diametre/2),y[i]+(diametre/2))
elif gravite1==1:
if frot==0:
for i in range(0,len(boule)):
for j in range(0,len(boule)):
if j!=i:
d=sqrt((-x[i]+x[j])**2+(-y[i]+y[j])**2)
f=d
if d>diametre/2:
vitessex[i],vitessey[i]=vitessex[i]-(vitessex[j]/f),vitessey[i]-(vitessey[j]/f)
elif d<=diametre/2:
vitessex[i],vitessey[i],vitessex[j],vitessey[j]=vitessex[j]-vitessex[i],vitessey[j]-vitessex[i],vitessex[j]-vitessex[i],vitessey[j]-vitessex[i]
if x[i]>=(H-(diametre/2)):vitessex[i],rebondc=-vitessex[i],rebondc+1
if x[i]<=(diametre/4):vitessex[i],rebondc=-vitessex[i],rebondc+1
if y[i]>=(L-(diametre/2)):vitessey[i],rebondc=-vitessey[i],rebondc+1
if y[i]<=(diametre/4):vitessey[i],rebondc=-vitessey[i],rebondc+1
x[i],y[i]=x[i]+vitessex[i],y[i]+vitessey[i]
can.coords(boule[i],x[i],y[i],x[i]+(diametre/2),y[i]+(diametre/2))
elif frot==1:
for i in range(0,len(boule)):
for j in range(0,len(boule)):
if j!=i:
d=sqrt((-x[i]+x[j])**2+(-y[i]+y[j])**2)
f=d
if d>diametre/2:
vitessex[i],vitessey[i]=vitessex[i]-(vitessex[j]/f),vitessey[i]-(vitessey[j]/f)
elif d<=diametre/2:
vitessex[i],vitessey[i],vitessex[j],vitessey[j]=vitessex[j]-vitessex[i],vitessey[j]-vitessex[i],vitessex[j]-vitessex[i],vitessey[j]-vitessex[i]
if
x[i]>=(H-(diametre/2)):vitessex[i],rebondc=-vitessex[i]*frotvalue,rebondc+1
if
x[i]<=(diametre/4):vitessex[i],rebondc=-vitessex[i]*frotvalue,rebondc+1
if
y[i]>=(L-(diametre/2)):vitessey[i],rebondc=-vitessey[i]*frotvalue,rebondc+1
if
y[i]<=(diametre/4):vitessey[i],rebondc=-vitessey[i]*frotvalue,rebondc+1
x[i],y[i]=x[i]+vitessex[i]*frotvalue,y[i]+vitessey[i]*frotvalue
can.coords(boule[i],x[i],y[i],x[i]+(diametre/2),y[i]+(diametre/2))
if var-0.01<time<var+0.01:
rebondinstant,timet=rebondinstant+[rebondc],timet+[var]
commentaire.configure(text='nombre de rebonds depuis \n'+str(var)+'
secondes : \n'+str(rebondc)+'\nsoit :\n'+str(rebondc/(var))+'\n rebonds
par seconde',bg='yellow')
var=var+5
if statue==0:
time=time+0.01
fen.after(10,_lancer)
def evaluer(x):
global nombreaplacer
nombreaplacer=x
Bouton_placer.configure(text='Placer: '+str(nombreaplacer)+" boules")
commentaire.configure(text='il y aura: '+str(nombreaplacer)+" boules",bg='light blue')
def placer():
global
x,y,savex,savey,couleur,coulchoix,boule,dialogue,diametre,H,L,nomboule,nombreaplacer,vitessex,vitessey,diametret
a=0
if int(nombreaplacer)!=0:
nomboule=a
Bouton_placer.configure(state=DISABLED)
while a!=int(nombreaplacer):
xplace,yplace=randrange(diametre+20,H-20),randrange(diametre+20,L-20)
if a!=0:
for i in range(0,len(boule)):
b=0
while b!=1:
if x[i]-(diametre/2)-1<xplace<x[i]+(diametre/2)+1:
xplace=randrange(diametre+20,H-20)
else:b=1
b=0
while b!=1:
if y[i]-(diametre/2)-1<yplace<y[i]+(diametre/2)+1:
yplace=randrange(diametre+20,L-20)
else:b=1
x,y=x+[xplace],y+[yplace]
savex,savey=savex+[xplace],savey+[yplace]
coul=couleur[randrange(0,len(couleur))]
vitessex=vitessex+[randrange(-6,6)]
vitessey=vitessey+[randrange(-6,6)]
boule=boule+[can.create_oval(x[a],y[a],x[a]+(diametre/2),y[a]+(diametre/2),fill=coul)]
a=a+1
commentaire.configure(text='il y a: '+str(len(boule))+"
boules",bg='light blue')
Bouton_lancer.configure(state=ACTIVE)
s1.configure(state=DISABLED)
else:
commentaire.configure(text="on ne peut placer plus de 0 boules",bg='red')
def quit():
response=tkMessageBox.askyesno('Quitter', "Voulez vous vraiment quitter ?")
commentaire.configure(text="Vous nous quittez ?",bg='red')
if response==1:
fen.destroy()
else:
commentaire.configure(text="Vous restez avec nous",bg='blue')
def frotementss(x):
global frotvalue
frotvalue1=int(x)
frotvalue=frotvalue1/1000.
if frotvalue==1:
commentaire.configure(text='frotement à : '+str(frotvalue)+' aucun
frotement',bg='light blue')
elif frotvalue<1:
commentaire.configure(text='frotement à : '+str(frotvalue)+' la vitesse
diminue',bg='light blue')
elif frotvalue>1:
commentaire.configure(text='frotement à : '+str(frotvalue)+' la vitesse
augmente',bg='light blue')
def inite():
global
x,y,savex,savey,vitessey,vitessex,H,L,boule,rebondc,dialogue,angx,angy,frotvalue,statue,nombreaplacer,frot,hfirste,var,time,valuex,valuey,h,l,rebondinstant,timet,Masse,diametret,rebondmax,moyene,drgy,drgx,gg,gravit1,diametre,graphe1
can.delete(ALL)
graphe1=0
diametre=40
gravite1=0
gg=0
dgrx=0.0
drgy=0.0
moyene=[0]
rebondmax=0
diametret=[]
Masse=6000
rebondinstant,timet=[],[]
h=[]
l=[]
valuex,valuey=[],[]
time=0
var=5.0
hfirste=[]
frot=0
nombreaplacer=0
statue=0
frotvalue=1000.
angx=[]
angy=[]
dialogue='Commentaire : Aucun'
rebondc=0
boule=[]
vitessex=[]
vitessey=[]
x,y,savex,savey=[],[],[],[]
Bouton_placer.configure(state=ACTIVE)
Bouton_pause.configure(state=DISABLED)
s1.configure(state=ACTIVE)
s2.configure(state=DISABLED)
s1.set(0)
s2.set(1000)
#######################################################
#######################################################
H=800
L=800
graphe1=0
diametre=40
gravite1=0
gg=0
dgrx=0.0
drgy=0.0
moyene=[0]
rebondmax=0
diametret=[]
Masse=6000
rebondinstant,timet=[],[]
h=[]
l=[]
g=9.8
valuex,valuey=[],[]
time=0
var=5.0
hfirste=[]
frot=0
nombreaplacer=0
statue=0
frotvalue=0
angx=[]
angy=[]
dialogue='Commentaire : Aucun'
rebondc=0
boule=[]
vitessex=[]
vitessey=[]
x,y,savex,savey=[],[],[],[]
couleur=["orange","blue","light blue","dark blue","red","dark
red","green","light green","brown","pink","grey","dark
grey","yellow","white","ivory"]
coulchoix=[]
sys.path[:0] = ['../../..']
#######################################################
fen=Tk()
fen.title('rebond')
can=Canvas(fen,width=L,height=H,bg='dark green')
can1=Canvas(fen,width=50,height=H,bg='dark red')
commentaire=Label(can1,text=dialogue,bg='light blue',font=('trebuchtet',10,'bold'))
commentaire.pack(padx=5,pady=5,side=BOTTOM)
graphe=IntVar()
c3=Checkbutton(can1,text='sans/avec
graphique',font=('trebuchtet',8,'bold'),activeforeground="white",variable=graphe,fg='blue',bg='dark
red',command=graphee).pack(padx=5,pady=5,side=BOTTOM)
frotement=IntVar()
c1=Checkbutton(can1,text='sans/avec
frotement',font=('trebuchtet',8,'bold'),activeforeground="white",variable=frotement,fg='blue',bg='dark
red',command=frote).pack(padx=5,pady=5,side=BOTTOM)
gravite=IntVar()
c2=Checkbutton(can1,text='sans/avec
gravité',font=('trebuchtet',8,'bold'),activeforeground="white",variable=gravite,fg='blue',bg='dark
red',command=gravitee).pack(padx=5,pady=5,side=BOTTOM)
s1=Scale(can1,label='nombre de boules',orient=HORIZONTAL,bg='dark
red',font=('trebuchtet',7,'bold'),fg='white', from_=50, to
=0,command=evaluer)
s1.pack(padx=5,pady=5,side=BOTTOM)
s1.set(0)
Bouton_pause=Button(can1,text='Pause',height=2,width=25,state=DISABLED,relief=GROOVE,bg="white",activebackground="dark
green",activeforeground="white",font=('trebuchtet',8,'bold'),command=pause)
Bouton_pause.pack(padx=5,pady=5,side=BOTTOM)
Bouton_lancer=Button(can1,text='Lancer',height=2,state=DISABLED,width=25,relief=GROOVE,bg="white",activebackground="dark
green",activeforeground="white",font=('trebuchtet',8,'bold'),command=_lancer)
Bouton_lancer.pack(padx=5,pady=5,side=BOTTOM)
Bouton_placer=Button(can1,text='Placer: '+str(nombreaplacer)+"
boules",height=2,width=25,relief=GROOVE,bg="white",activebackground="dark
green",activeforeground="white",font=('trebuchtet',8,'bold'),command=placer)
Bouton_placer.pack(padx=5,pady=5,side=BOTTOM)
coulm=Menubutton(text='fichiers',font=('trebuchtet',11,'bold'))
coulm.grid(row=0,sticky=E)
m1=Menu(coulm)
m1.add_command(label='initialiser',font=('trebuchtet',11,'bold'),underline=1,command=inite)
m1.add_command(label='Quitter',font=('trebuchtet',11,'bold'),underline=1,command=quit)
coulm.configure(menu=m1)
tip1=Pmw.Balloon()
tip1.bind(commentaire,"ici apparait les commentaires de vos experiences")
tip5=Pmw.Balloon()
tip5.bind(Bouton_pause,"pause: l'appliquation est stopée")
tip6=Pmw.Balloon()
tip6.bind(Bouton_lancer,"mettre les boules en mouvement")
tip7=Pmw.Balloon()
tip7.bind(Bouton_placer,"mettre les boules en position")
tip8=Pmw.Balloon()
tip8.bind(s1,"choisire le nombre de balle")
can.grid(row=1,column=0,rowspan=2)
can1.grid(row=1,column=1,sticky=N)
fen.mainloop()
######################################################################FIN
si vous voulez je peux vous envoyer le scripte sur une adresse e mail car le message fais sauter des lignes là ou il ne faut pas
voila la mienne :
romain.picoletspr@laposte.net
voila et n'esitez pas à me contacter
merci a+