exemples/IVROGNES.JLOGO

; Le mouvement brownien : les particules d'un gaz se d?placent de fa?on al?atoire entre deux chocs... 
; telles une nu?e d'ivrognes !

; Essayer HIPS combien pas nivrognes, par exemple HIPS 300 8 200
; combien est le nombre de pas que les ivrognes feront (= dur?e de l'observation)
; pas est la taille du pas unitaire des ivrognes (= ?chelle de l'observation + temp?rature du gaz)
; nivrognes est le nombre d'ivrognes (= densit? des particules = pression du gaz )

; ce qui n'est pas pris en compte dans ce mod?le : les chocs et les int?ractions ? distance entre les particules

; faire un pas puis gestion des collisions... pas encore faite
POUR BOUM :P
ATTRAPEERREUR [FCAP HASARD 360 AV :P] []
FIN

; la proc?dure principale
POUR HIPS :combien :pas :ntortue
; initialisation : placer les ivrognes au hasard dans l'espace
EC [Initialisation des ivrognes...]
VE ENR
DONNE "n 0 REPETE :ntortue [FTORTUE :n PLACEHASARD FCC :n DONNE "n :n + 1]
; afficher une tortue pour temporiser les affichages
MT
; en piste !
ATTENDSTORTUE EC [Go !]
REPETE :combien [DONNE "n 0 REPETE :ntortue [ TORTUEHIPS :pas :n DONNE "n :n + 1 ]]
; nettoyage, on ne laisse que les traces des tortues
ATTENDSTORTUE EC [Fini]
DONNE "n COMPTE TORTUES REPETE :n [TUETORTUE :n DONNE "n :n - 1]
FIN

POUR TORTUEHIPS :pas :n
FTORTUE :n
BOUM :pas
FIN

POUR PLACEHASARD
CT LC
SOIT "maxX ITEM 1 TGRAPH
SOIT "maxY ITEM 2 TGRAPH
SOIT "x DIFF HASARD :maxX :maxX / 2
SOIT "y DIFF HASARD :maxY :maxY / 2
FPOS PH :x :y
BC
FIN


 
Me faire un don