[quote=$imon]si jamais tu veux uttiliser une centaine d'acteurs de meme type (une centaine de points , etc...)
c'est beaucoups plus rapide
par exemple :
Code:
livre :
GRAVITE
les espèces :
( l'espece point+ est un point avec quatre valeurs en plus qui déterminent sa vitesse et sa trajectoire)
>
droite est un nombre
>
gauche est un nombre
>
bas est un nombre
>
haut est un nombre
l'espèce point+ hérite de point et contient >
droite , >
gauche , >
bas , >
haut
les grands rôles :
BALLES est un nombre valant 100
VITESSE est un nombre valant 100
casier_ est un casier de point+
nbr_point est un nombre vide
plus est un point+ , taille est 10 , >
gauche est 0 , >
bas est 0 , >
droite est 0 , >
haut est 0
ligne-sol est une ligne , x1 est 0 , x2 est 1000 , y1 est 500 , y2 est 500
compteur est un nombre vide
point-actuel est un nombre
paragraphe :
début
rôles :
actions :
efface le tableau
efface la toile
projette ligne-sol
copie 0 dans compteur
vide casier_
nbr_point = -1
va vers apparition
paragraphe :
apparition
rôles :
alea est un nombre
phrase est un texte
actions :
( création dynamique d'acteurs point+ )
ajoute 1 dans nbr_point
concatène "#" , nbr_point dans phrase
Créé phrase un acteur point+
ajoute <
phrase>
dans casier_
alea = 350
mélange alea
ajoute 150 dans alea
copie alea dans x de casier_ { nbr_point }
( caractéristiques des points )
copie 30 dans y de casier_ { nbr_point }
projette casier_ { nbr_point }
copie 10 dans taille de casier_ { nbr_point }
copie 0 dans >
gauche de casier_ { nbr_point }
copie 0 dans >
droite de casier_ { nbr_point }
copie 0 dans >
bas de casier_ { nbr_point }
copie 0 dans >
haut de casier_ { nbr_point }
( pour la couleur )
alea = 7
mélange alea
si alea est égal à 0 alors copie "rouge" dans couleur de casier_ { nbr_point }
si alea est égal à 1 alors copie "vert" dans couleur de casier_ { nbr_point }
si alea est égal à 2 alors copie "bleu" dans couleur de casier_ { nbr_point }
si alea est égal à 3 alors copie "blanc" dans couleur de casier_ { nbr_point }
si alea est égal à 4 alors copie "noir" dans couleur de casier_ { nbr_point }
si alea est égal à 5 alors copie "violet" dans couleur de casier_ { nbr_point }
si alea est égal à 6 alors copie "bordeaux" dans couleur de casier_ { nbr_point }
va vers force-1
paragraphe :
force-1
rôles :
valeur est un nombre
actions :
valeur = BALLES - nbr_point
valeur = valeur / VITESSE
si valeur est plus petit que 1 alors copie 1 dans valeur
attends valeur millisecondes
pour chaque casier_ , parcours force-2
(pour chaque nbr_point , parcours force-3)
va vers remise à zéro
paragraphe :
force-2
rôles :
valeur est un nombre
alea est un nombre
#graffiti est un graffiti , x est 100 , y est 100 , couleur est "zinzolin"
actions :
( affichage )
concatène nbr_point , " billes" dans texte de #graffiti
projette #graffiti
( la bille tombe )
ajoute 2 dans >
bas de joker
( résistance de l'air )
si >
haut de joker est plus grand que >
bas de joker alors ajoute 1 dans >
bas de joker
( annulation des forces contraires )
si >
bas de joker est plus petit que >
haut de joker alors copie >
bas de joker dans valeur
sinon , si >
haut de joker est plus petit que >
bas de joker alors copie >
haut de joker dans valeur
sinon , copie >
haut de joker dans valeur
>
bas de joker = >
bas de joker - valeur
>
haut de joker = >
haut de joker - valeur
( déplacement )
tu déplaces joker vers le haut de >
haut de joker
tu déplaces joker vers la gauche de >
gauche de joker
tu déplaces joker vers la droite de >
droite de joker
tu déplaces joker vers le bas de >
bas de joker
( rebond sur le sol )
si y de joker est plus grand que y1 de ligne-sol alors >
haut de joker = >
bas de joker + >
haut de joker
si y de joker est plus grand que y1 de ligne-sol alors vide >
bas de joker
si y de joker est plus grand que y1 de ligne-sol alors copie y1 de ligne-sol dans y de joker
alea = 2
mélange alea
soustrais 1 dans alea
ajoute alea dans y de joker
reviens
(Paragraphe :
force-3
Rôles :
Actions :
point-actuel = joker
pour chaque casier_ , parcours force-4
reviens
Paragraphe :
force-4
rôles :
anticollision est un nombre
position est un nombre
actions :
anticollision = 0
si casier_ { point-actuel } est en collision avec le joker alors anticollision = 1
si anticollision est différent de 1 alors reviens
position = 0
si x de casier_ { point-actuel } est plus petit que x de joker alors position = position + 2
si x de casier_ { point-actuel } est plus grand que x de joker alors position = position + 3
si y de casier_ { point-actuel } est plus petit que y de joker alors position = position * 1
si y de casier_ { point-actuel } est plus grand que y de joker alors position = position * 2
si position est égal à 0 alors reviens
si position est égal à 2 alors >
haut de casier_ { point-actuel } = >
haut de casier_ { point-actuel } + >
haut de joker + 3
si position est égal à 2 alors >
gauche de casier_ { point-actuel } = >
gauche de casier_ { point-actuel } + >
gauche de joker + 3
si position est égal à 2 alors >
bas de joker = >
bas de casier_ { point-actuel } + >
bas de joker + 3
si position est égal à 2 alors >
droite de joker = >
droite de casier_ { point-actuel } + >
droite de joker + 3
( si position est égal à 2 alors >
haut de casier_ { point-actuel } = >
haut de casier_ { point-actuel } - >
bas de joker
si position est égal à 2 alors >
gauche de casier_ { point-actuel } = >
gauche de casier_ { point-actuel } - >
droite de joker
si position est égal à 2 alors >
bas de joker = >
bas de joker - >
haut de casier_ { point-actuel }
si position est égal à 2 alors >
droite de joker = >
droite de joker - >
gauche de casier_ { point-actuel } )
si position est égal à 3 alors >
haut de casier_ { point-actuel } = >
haut de casier_ { point-actuel } + >
haut de joker + 3
si position est égal à 3 alors >
droite de casier_ { point-actuel } = >
droite de casier_ { point-actuel } + >
droite de joker + 3
si position est égal à 3 alors >
bas de joker = >
bas de casier_ { point-actuel } + >
bas de joker + 3
si position est égal à 3 alors >
gauche de joker = >
gauche de casier_ { point-actuel } + >
gauche de joker + 3
( si position est égal à 3 alors >
haut de casier_ { point-actuel } = >
haut de casier_ { point-actuel } - >
bas de joker
si position est égal à 3 alors >
droite de casier_ { point-actuel } = >
droite de casier_ { point-actuel } - >
gauche de joker
si position est égal à 3 alors >
bas de joker = >
bas de joker - >
haut de casier_ { point-actuel }
si position est égal à 3 alors >
gauche de joker = >
gauche de joker - >
droite de casier_ { point-actuel } )
si position est égal à 4 alors >
bas de casier_ { point-actuel } = >
bas de casier_ { point-actuel } + >
bas de joker + 3
si position est égal à 4 alors >
gauche de casier_ { point-actuel } = >
gauche de casier_ { point-actuel } + >
gauche de joker + 3
si position est égal à 4 alors >
haut de joker = >
haut de casier_ { point-actuel } + >
haut de joker + 3
si position est égal à 4 alors >
droite de joker = >
droite de casier_ { point-actuel } + >
droite de joker + 3
( si position est égal à 4 alors >
bas de casier_ { point-actuel } = >
bas de casier_ { point-actuel } - >
haut de joker
si position est égal à 4 alors >
gauche de casier_ { point-actuel } = >
gauche de casier_ { point-actuel } - >
droite de joker
si position est égal à 4 alors >
haut de joker = >
haut de joker - >
bas de casier_ { point-actuel }
si position est égal à 4 alors >
droite de joker = >
droite de joker - >
gauche de casier_ { point-actuel } )
si position est égal à 6 alors >
bas de casier_ { point-actuel } = >
bas de casier_ { point-actuel } + >
bas de joker + 3
si position est égal à 6 alors >
droite de casier_ { point-actuel } = >
droite de casier_ { point-actuel } + >
droite de joker + 3
si position est égal à 6 alors >
haut de joker = >
haut de casier_ { point-actuel } + >
haut de joker + 3
si position est égal à 6 alors >
gauche de joker = >
gauche de casier_ { point-actuel } + >
gauche de joker + 3
( si position est égal à 6 alors >
bas de casier_ { point-actuel } = >
bas de casier_ { point-actuel } - >
haut de joker
si position est égal à 6 alors >
droite de casier_ { point-actuel } = >
droite de casier_ { point-actuel } - >
gauche de joker
si position est égal à 6 alors >
haut de joker = >
haut de joker - >
bas de casier_ { point-actuel }
si position est égal à 6 alors >
gauche de joker = >
gauche de joker - >
droite de casier_ { point-actuel } )
reviens
)
paragraphe :
remise à zéro
rôles :
alea est un nombre
actions :
copie 40 dans alea
mélange alea
ajoute 1 dans compteur
si nbr_point est plus grand que 100 alors alea = 0
si nbr_point est plus grand que BALLES alors va vers force-1
si compteur est plus grand que alea alors vide compteur
si compteur est ( plus grand que alea ) égal à 0 alors va vers apparition
va vers force-1
les parties de livre entre parenthese servent si tu veux faire en sorte que les billes se cognent mais ça ralentit énormement la lecture
tu peux modifier le nombre de billes en changeant l'acteur "BALLES" ainsi que la vitesse avec "VITESSE"
ici , la création dynamique évite d'avoir à réécrire les grands rôles des que tu veux changer le nombre de billes[/quote]
Excellent !