Page 1 of 3

Prgm matrix (film)

Unread postPosted: 04 Mar 2015, 00:12
by PiR
Bonjour,
J'aimerais faire un prgm qui fait comme le défilement de caractère dans matrix
Je l'ai déjà commencé mais il n'affiche qu'une colonne à la fois et reprend au début alors que je voudrais que ce soit continu.
Je voudrais aussi que ce soit des caractères aléatoire pas de disp "010011010110"
voici ce que j'ai commencé à faire:
Code: Select all
"01"->chaine1
longueur(chaine1->n
while 1
For(A,1,16)
For(B,1,8)
output(B,A,sub(chaine1,entaleat(1,n),1
end
end
end

Re: Prgm matrix (film)

Unread postPosted: 04 Mar 2015, 00:19
by critor
Pour les caractères aléatoires il te suffit de changer la 1ère ligne :
Code: Select all
"A,0+n=5"->chaîne1


Si tu veux que ça affiche par ligne au lieu de par colonne, échange les deux boucles for :
Code: Select all
For(B,1,8)
For(A,1,16)

Re: Prgm matrix (film)

Unread postPosted: 04 Mar 2015, 08:52
by Hayleia
Je comprends pas le but de la variable N.
N est initialisé à longueur(chaine1, c'est à dire 2, et ne varie jamais, alors pourquoi ne pas tout simplement remplacer N par 2 dans la boucle ?

Et en fait, je ne comprends pas non plus le but de Chaîne1. Tu fais un entaleat(1,2) et tu affiches le caractère qui se trouve à cet indice dans Chaîne1, mais pourquoi ne pas juste faire un entaleat(0,1) et afficher ça ?

Re: Prgm matrix (film)

Unread postPosted: 04 Mar 2015, 12:39
by PiR
Hayleia wrote:Je comprends pas le but de la variable N.
N est initialisé à longueur(chaine1, c'est à dire 2, et ne varie jamais, alors pourquoi ne pas tout simplement remplacer N par 2 dans la boucle ?

Et en fait, je ne comprends pas non plus le but de Chaîne1. Tu fais un entaleat(1,2) et tu affiches le caractère qui se trouve à cet indice dans Chaîne1, mais pourquoi ne pas juste faire un entaleat(0,1) et afficher ça ?

En fait je fais ça pur après pouvoir mettre des symboles (le 0,1 n'est qu'un exemple)

Re: Prgm matrix (film)

Unread postPosted: 04 Mar 2015, 12:45
by PiR
critor wrote:Pour les caractères aléatoires il te suffit de changer la 1ère ligne :
Code: Select all
"A,0+n=5"->chaîne1


Si tu veux que ça affiche par ligne au lieu de par colonne, échange les deux boucles for :
Code: Select all
For(B,1,8)
For(A,1,16)

Oui ça je sais, en fait mon pb c'est que ça n'affiche qu'une colonne à la fois et une fois écrite ça repart du début, je voudrais que ça écrive plusiquers colonnes à la fois et que ça fasse un défilement continu, comme dans le film (comme ça: http://media3.giphy.com/media/fJ1eCBjmMoEvu/giphy.gif)

Re: Prgm matrix (film)

Unread postPosted: 04 Mar 2015, 12:49
by critor
Plusieurs colonnes à la fois, c'est bien ce que fait ma 2ème modification il me semble.

Re: Prgm matrix (film)

Unread postPosted: 04 Mar 2015, 14:43
by PiR
critor wrote:Plusieurs colonnes à la fois, c'est bien ce que fait ma 2ème modification il me semble.

Non, ça fait toutes le lignes à la fois, moi je veux que quelque colonne :p

Re: Prgm matrix (film)

Unread postPosted: 04 Mar 2015, 15:43
by grosged
Je viens d'observer l'image animée ( http://media3.giphy.com/media/fJ1eCBjmMoEvu/giphy.gif ) .
Apparemment, les caractères qui composent chacune des colonnes sont fixes : je veux dire qu'ils (ré)apparaissent sur une traînée d'environ 8 ou 9 caractères, et disparaissent au fur et à mesure que chacun de ces groupes se décale vers le bas.
Il n'y a rien d'aléatoire, puisque ces caractères ne changent pas, et chaque trainée (strictement identique à la précèdente) réapparait en haut peu de temps après avoir disparu en bas.
Alors que dans la version originale ( https://www.youtube.com/watch?v=rpWrtXyEAN0 )
les caractères fixes changent un peu pendant que la trainée descend, et quand une nouvelle traînée arrive d'en haut , celle-ci est à chaque fois différente.

Re: Prgm matrix (film)

Unread postPosted: 04 Mar 2015, 16:04
by PiR
Oui, ça serait le top mais bon, c'est plus complexe, mais si tu as une solution, je suis preneur ;)

Re: Prgm matrix (film)

Unread postPosted: 04 Mar 2015, 19:24
by Hayleia
Voilà une solution au problème où les caractères ne changent pas une fois écrits déjà (facilement modifiable pour avoir plus de colonnes et afficher autre chose que 0 et 1, etc).

Code: Select all
2→N

N→dim(|LMAT
For(I,1,N
randInt(1,8→|LMAT(I
End

ClrHome
While 1
For(I,1,N
Output(|LMAT(I),I,randInt(0,1
Output(8float{(|LMAT(I)+2)/8)+1,I," "
1+8float{(|LMAT(I))/8)→|LMAT(I
End
End

matrix.gif


(Ça ne m'avait pas manqué le basic et ses indices qui commencent à 1...).