Chipgrid / Documentation / Guides

Mobiles et voies

Des flèches qui avancent, des émetteurs qui les lancent, des rails, des boucles et des aiguillages, pour que la disposition du code devienne le rythme.

Les mobiles

> < ^ v sont des mobiles. À chaque tick, un mobile avance d’une case dans sa direction. Quand la case suivante n’est pas vide, il s’arrête et devient un bang là où il est. Si ce bang touche une voix, la voix joue.

E est un émetteur : tous les N ticks (son entrée de gauche), il lance un > vers sa droite. La distance entre l’émetteur et ce que la flèche heurte est un délai :

4E......P4C24

La polyrythmie

Des émetteurs à des périodes différentes se décalent peu à peu, puis se retrouvent. Tiré de l’exemple Mobiles & polyrythmie :

8E..................P5C02
...................F4
6E..................P5G02
...................F7
cE..................N010
...................Fb
aE..................B3C2o
...................F2

Des couloirs tous les 8, 6, 12 (c) et 10 (a) ticks. Le bang que devient chaque flèche touche aussi le F en dessous : chaque couloir fait flasher l’écran de sa couleur.

Les rails

_ et | sont des rails. Ils ne font rien tout seuls : un mobile roule dessus, et le rail réapparaît derrière lui. _ et | sont la même chose, l’un pour les voies horizontales, l’autre pour les verticales. Ils rendent vos voies visibles, même à l’arrêt.

Les boucles

) tourne un mobile vers sa droite, ( vers sa gauche, de tous les côtés. Un virage n’a pas d’entrée : ses quatre côtés restent libres, et une voie peut se refermer en boucle : quatre virages, des rails et une flèche, et ça tourne sans fin.

Quand le mobile passe un virage, tout ce qui touche ce virage reçoit un bang (par la gauche, le haut ou le bas). Placez des voix autour des virages et la boucle devient un séquenceur visible :

)>_____)P5C14
|......|
|......|
)______)
B2C2

Cette boucle fait 7 cases de large et 3 de haut, comptées d’un virage à l’autre : un tour prend donc 2 × (7 + 3) − 4 = 16 ticks, exactement une mesure. P joue quand la flèche passe le virage en haut à droite, B une demi-mesure plus tard en bas à gauche. Tapez un second > sur les rails pour deux fois plus de coups. ) pour les boucles dans le sens des aiguilles d’une montre, ( pour l’autre sens : côte à côte, elles se répondent en miroir.

Les aiguillages

: est un aiguillage. Un mobile qui l’atteint par la gauche, le haut ou le bas repart dans le sens indiqué par la case à sa droite : ^ en haut, v en bas, < à gauche, > à droite, ou vide pour tout droit.

........P4C24
........|
........|
8E______:^

Tous les 8 ticks, une flèche roule sur les rails, monte à l’aiguillage et s’arrête sous P : un bang. Changez ^ en v et les flèches descendent.

La case de l’aiguillage accepte aussi des nombres : 0 gauche, 1 droite, 2 haut, 3 bas. Une horloge, une séquence ou un lien peut donc changer la route pendant la lecture :

8C2
..S^v
...@r
........P4C24
........|
........|&r
8E______:
........|
........|
........B2C2

Une horloge parcourt la liste ^v et l’envoie sur le lien r. &r l’écrit dans l’aiguillage : un seul flot de flèches, deux voix, chacune son tour.

Deux règles : laissez au moins une case vide entre un aiguillage et une voix (le mobile a besoin d’un tick pour devenir un bang), et si la sortie est bloquée, le mobile s’arrête et fait un bang sur place.

S’y retrouver

  • reprise remet chaque mobile où vous l’avez tapé et vide l’écran, sans toucher à votre code. Utile quand les flèches se sont accumulées ou égarées.
  • Sélectionnez toute une boucle en glissant dessus, puis glissez la sélection (ou Ctrl + flèches) : le code se déplace d’un bloc.
  • Les exemples Routes construisent des trains, des routeurs et des tables d’effets ; Le code comme œuvre dispose des programmes entiers en images, avec des roues de rails.
Esc