Scrie asamblare mică într-o grilă de CPU-uri care își transmit valorile vecinilor, transformând fluxul de intrare în țintă fără a bloca sistemul.
Cum se joacă
Programezi o grilă de calculatoare foarte mici. Fiecare nod rulează propria sa listă scurtă de instrucțiuni și poate comunica doar cu vecinii din imediata apropiere, transmitând valori prin porturi — deci un număr care trebuie să traverseze grila trebuie retransmis manual, nod cu nod.
Fiecare nod are un acumulator și câteva instrucțiuni: mutare valoare, adunare, scădere, săritură.
Un nod poate citi sau scrie către vecinul de deasupra, dedesubt, stânga sau dreapta, sau către fluxurile de intrare și ieșire.
Porturile se blochează. Un nod care scrie spre dreapta așteaptă pur și simplu până când nodul din dreapta lui citește din stânga.
Asta înseamnă că doi noduri trebuie să se sincronizeze în timp, nu doar în valoare.
Dacă un ciclu întreg trece fără nimeni să progreseze și cineva încă așteaptă, grila este blocată.
Puzzle-ul este rezolvat când fluxul de ieșire se potrivește cu ținta cerută de nivel.
Comenzi
Desktop: tastează codul în caseta de text a fiecărui nod, alege un nivel din lista derulantă, apoi apasă Run
Telefon & tabletă: funcționează, dar un tastatură externă este puternic recomandată pentru scrierea codului
Moduri de joc
Zilnic: un puzzle comun generat din data de azi
Practică: parcurge intrări aleatorii noi cu butonul New
Sfaturi & strategie
Proiectează traseul înainte de aritmetică. Majoritatea eșecurilor sunt valori care nu pot ajunge unde trebuie, nu sume care ies greșit.
Două noduri care se așteaptă reciproc este blocajul clasic. Dacă ambele scriu una spre cealaltă înainte ca oricare să citească, niciuna nu se va mișca niciodată.
Menține traficul într-o singură direcție unde poți. O grilă cu o direcție constantă este mult mai ușor de analizat decât una cu valori care se intersectează.
Folosește un nod ca pur și simplu retransmițător când ai nevoie. A face nimic altceva decât a transmite o valoare mai departe este o sarcină legitimă și adesea necesară.
Citește nodul blocat, nu răspunsul greșit. Când ieșirea stagnează, informația utilă este care nod așteaptă și pentru cine.
Ce vei învăța
Node Network este un puzzle de programare paralelă despre transmiterea mesajelor și evitarea blocajelor într-o rețea de procesoare.
Abilități: programare paralelă și concurentă, transmitere de mesaje, evitarea blocajelor
Potrivit pentru: aproximativ clasele 9–12 (14+ ani)
Pentru părinți & profesori: concurență și blocaje, prin practică.
Originile
O grilă de calculatoare foarte mici, fiecare rulând propria listă scurtă de instrucțiuni și putând comunica doar cu vecinii aflați direct lângă el, înseamnă TIS-100 — Zachtronics, iulie 2015 — care își plasa puzzle-urile pe o mașină fictivă, coruptă, din anii 1970.
Constrângerea predată este reală și centrală în calculul paralel: fără memorie partajată, o valoare care trebuie să traverseze grila trebuie transmisă manual, nod cu nod, prin transmitere de mesaje.
Iar transmiterea manuală este felul în care dai de interblocare — două noduri care se așteaptă reciproc, amândouă oprite pentru totdeauna. Este o eroare care nu poate fi cu adevărat explicată pe tablă, pentru că întreaga dificultate este că fiecare nod se comportă, luat individual, corect.
Despre Node Network
Node Network este un puzzle de programare paralelă despre transmiterea mesajelor și evitarea blocajelor într-o rețea de procesoare. Este un joc original, gratuit, în browser, dezvoltat intern pentru PlayPendium.