#N canvas 55 0 896 698 12; #X obj 67 49 random 6; #X obj 130 49 random 6; #X obj 193 49 random 6; #X obj 105 9 t b b b; #X obj 130 113 ==; #X obj 76 111 ==; #X floatatom 381 113 5 0 0 0 - - -; #X floatatom 342 113 5 0 0 0 - - -; #X floatatom 303 113 5 0 0 0 - - -; #X floatatom 49 139 5 0 0 0 - - -; #X floatatom 136 136 5 0 0 0 - - -; #X floatatom 101 162 5 0 0 0 - - -; #X obj 366 87 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 100 141 +; #X obj 142 160 == 2; #X obj 142 181 metro 350; #X obj 309 135 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 327 134 YOU WIN !; #X obj 393 135 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 334 86 PLAY; #X obj 193 70 + 1; #X obj 130 70 + 1; #X obj 67 70 + 1; #X text 29 220 the t b b b object sends three bangs \, first on the right outlet \, then on the middle \, and left at last. this allows to put the random numbers in the cold (right) inlet of every == \, so the calculation is done with current numbers and not previous ones (check == and trigger help to understand better. cheetomoskeeto's videos on youtube are excellent to understand how calculation is done in puredata. the metro is on when receiving a 1 on its left inlet. I left number boxes to watch how the patch works \, hope it's clear! Paul; #X connect 0 0 5 0; #X connect 0 0 22 0; #X connect 1 0 4 0; #X connect 1 0 5 1; #X connect 1 0 21 0; #X connect 2 0 4 1; #X connect 2 0 20 0; #X connect 3 0 0 0; #X connect 3 1 1 0; #X connect 3 2 2 0; #X connect 4 0 10 0; #X connect 4 0 13 1; #X connect 5 0 9 0; #X connect 5 0 13 0; #X connect 12 0 3 0; #X connect 13 0 11 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 15 0 16 0; #X connect 15 0 18 0; #X connect 20 0 6 0; #X connect 21 0 7 0; #X connect 22 0 8 0; #X coords 0 -1 1 1 120 80 1 300 80;