Coloriage grille aléatoire processing

Fermé
KIJV Messages postés 1 Date d'inscription mercredi 1 novembre 2017 Statut Membre Dernière intervention 1 novembre 2017 - Modifié le 1 nov. 2017 à 17:27
georges97 Messages postés 12585 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 25 novembre 2024 - 2 nov. 2017 à 12:37
Bonjour, je suis débutante en programmation et je dois rendre un projet pour l'isn. Je dois créer une grille où il faut colorier les cases de façon aléatoire et de couleurs différentes. Les cases ne doivent se colorier qu'une seule fois et je dois pouvoir contrôler la vitesse de coloriage.
Pour le moment, j'ai créé la grille et je la colorie de manière aléatoire sauf que les cases se colorient en même temps et ne s'arrêtent jamais..


void setup() {
size(700,700);
background(0,0,0);
}

void draw() {
frameRate(20);

//Première boucle (hauteur)
for (int y = 0; y < 10; y = y + 1) {
//Seconde boucle (largeur)

for (int x = 0; x < 10; x = x + 1) {
//On affiche la grille
rect(x * 50, y * 50, 50, 50);

//Coloriage
float R = random (255);
float G = random (255);
float B = random (255);
fill(R,G,B);
}
}
}

Merci de m'aider s'il vous plait!
A voir également:

2 réponses

yg_be Messages postés 23349 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 novembre 2024 Ambassadeur 1 554
1 nov. 2017 à 19:04
bonsoir, si je comprends bien, tout fonctionne parfaitement à part que cela se passe trop vite. c'est bien cela?
quel langage de programmation utilises-tu?
0
georges97 Messages postés 12585 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 25 novembre 2024 2 410
2 nov. 2017 à 11:35
Bonjour,

@yg_be, le langage s'appelle processing, "spécialisé" dans le tracés graphiques. Je ne le connais pas plus que çà sauf le fait qu'il a été utilisé dans la conception du "language" Arduino.

@KIJV, il faut sans doute ralentir l'affichage des cellules de la grille, par un framerate différent (sans doute plus bas).

Par ailleurs, la fonction noloop() vous permettra d'arrêter après la première exécution :

https://processing.org/reference/draw_.html

Si je puis me permettre, pensez comme je l'ai fait à utiliser google (ou autre moteur de recherche) qui vous proposera des liens vers des tutoriels ou forums traitant de nombre de problèmes, y compris concernant la programmation.

J'ai tapé framerate, puis delay, qui ne s'applique pas car réservé au ralentissement de la liaison série.

Pensez à nous dire si ça fonctionne. Ca servira à d'autres.

Cordialement
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
2 nov. 2017 à 12:17
le langage s'appelle processing, "spécialisé" dans le tracés graphiques.
C'est surtout une version modifiée de Java utilisé pour l'apprentissage, ici pour un cours d'informatique en terminal.

"il faut sans doute ralentir l'affichage des cellules de la grille, par un framerate différent"
En fait c'est surtout que la méthode draw() ne rendra pas la main à l'affichage avant que la méthode ne soit terminée, donc même si ça prenait 10 minutes, l'affichage se ferait en une seule fois, au bout des 10 minutes.

Ce qu'il faudrait ici c'est plutôt faire un draw() qui dépend de l'état du programme et faire une boucle à l'extérieur qui relance la méthode draw() plusieurs fois, a priori une fois par case si j'ai bien compris.
0
georges97 Messages postés 12585 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 25 novembre 2024 2 410
Modifié le 2 nov. 2017 à 12:39
Bonjour KX, j'ai improvisé, ne voyant pas venir de réponse, mais je te cède volontiers la main, étant un fan de tes connaissances.

J'avais effectivement pensé à inclure le script proposé dans une boucle principale, puis ai pensé, à tort, que le framerate suffirait.

Cordialement
0