Écrivez de petits bouts de code assembleur sur une grille de CPU qui passent les valeurs à leurs voisins, transformant le flux d'entrée en la cible sans provoquer de blocage.
Comment jouer
Vous programmez une grille de très petits ordinateurs. Chaque nœud exécute sa propre courte liste d'instructions et ne peut communiquer qu'avec les voisins immédiats, en transmettant les valeurs via des ports — ainsi, un nombre qui doit traverser la grille doit être relayé manuellement, nœud par nœud.
Chaque nœud possède un accumulateur et quelques instructions : déplacer une valeur, additionner, soustraire, sauter.
Un nœud peut lire ou écrire vers le voisin du haut, du bas, de la gauche ou de la droite, ou vers les flux d'entrée et de sortie.
Les ports sont bloquants. Un nœud qui écrit à droite attend simplement que le nœud à sa droite lise depuis sa gauche.
Cela signifie que deux nœuds doivent se synchroniser dans le temps, pas seulement sur la valeur.
Si un cycle complet passe sans que personne ne progresse et que quelqu'un attend toujours, la grille est bloquée.
Le puzzle est résolu lorsque le flux de sortie correspond à la cible demandée par le niveau.
Commandes
Bureau : tapez le code dans la zone de texte de chaque nœud, choisissez un niveau dans le menu déroulant, puis appuyez sur Exécuter
Téléphone et tablette : fonctionnel, mais un clavier externe est fortement recommandé pour écrire le code
Modes de jeu
Quotidien : un puzzle partagé généré à partir de la date du jour
Entraînement : parcourez des entrées aléatoires fraîches avec le bouton Nouveau
Astuces et stratégie
Concevez l'itinéraire avant l'arithmétique. La plupart des échecs viennent de valeurs qui ne peuvent pas atteindre leur destination, et non de sommes incorrectes.
Deux nœuds qui s'attendent mutuellement sont le blocage classique. Si les deux écrivent l'un vers l'autre avant que l'un ne lise, aucun ne bouge.
Maintenez le flux dans un seul sens lorsque c'est possible. Une grille avec une direction cohérente est bien plus facile à comprendre qu'une où les valeurs se croisent.
Utilisez un nœud comme simple relais si nécessaire. Ne rien faire d'autre que transmettre une valeur est un rôle légitime et souvent indispensable.
Lisez le nœud bloqué, pas la mauvaise réponse. Quand la sortie stagne, l'information utile est de savoir quel nœud attend et pour qui.
Ce que vous apprendrez
Node Network est un puzzle de programmation parallèle sur la transmission de messages et l'évitement des blocages sur un maillage de processeurs.
Compétences : programmation parallèle et concurrente, transmission de messages, évitement des blocages
Idéal pour : environ les niveaux 9 à 12 (14 ans et plus)
Pour les parents et les enseignants : la concurrence et les blocages, en pratique.
Origines
Une grille de tout petits ordinateurs, chacun exécutant sa propre courte liste d'instructions et ne pouvant communiquer qu'avec ses voisins immédiats, c'est TIS-100 — Zachtronics, juillet 2015 — qui situait ses casse-têtes sur une machine fictive et corrompue des années 1970.
La contrainte enseignée est réelle et centrale en calcul parallèle : sans mémoire partagée, une valeur qui doit traverser la grille doit être relayée à la main, nœud par nœud, par passage de messages.
Et c'est en relayant à la main qu'on rencontre l'interblocage — deux nœuds qui s'attendent mutuellement, tous deux arrêtés pour toujours. C'est un bogue qu'on ne peut pas vraiment expliquer au tableau, car toute la difficulté est que chaque nœud, pris isolément, se comporte correctement.
À propos de Node Network
Node Network est un puzzle de programmation parallèle sur la transmission de messages et l'évitement des blocages sur un maillage de processeurs. C'est un jeu de navigateur original et gratuit, développé en interne pour PlayPendium.
Un jeu original et gratuit dans votre navigateur — sans téléchargement. Voir tous les jeux →