Adder a 4 bit basato su Wireworld (Cellular Automata)
Nel parlare di Cellular Automata in un corso universitario che ho seguito, sono rimasto incuriosito dal fatto che queste possano essere Turing complete. Approfondendo la faccenda, ho trovato un set di regole detto Wireworld su cui dei pazzoidi hanno progettato e implementato una CPU intera.
Io mi sono limitato a implementarne le regole su Godot (game engine per fare videogiochi) e a farci sopra un adder a 4 bit. Sotto all’adder (si vedono solo se in fullscreen) trovate le quattro configurazioni che ho usato. Da sinistra a destra, sono: or, incrocio, and, xor.
I comandi:
MOUSE SINISTRO- piazza cella neraMOUSE DESTRO- rimuovi cellaMOUSE CENTRALE- piazza cella biancaBARRA SPAZIATRICE- toggle tra modalitàEDITe di simulazioneC- pulisce tutte le celleR- reset
Le regole del Wireworld:
- Una cella bianca diventa grigia
- Una cella grigia diventa nera
- Una cella nera diventa bianca se attorno a sé ha una o due celle bianche
Ho ottimizzato nel limite delle mie conoscenze (e voglia), ma finchè Godot non supporterà gli shader computazionali non posso sbolognare i conti alla GPU.