Zur Funktionsweise:
Jede zelle hat ein turingband, also ein array mit 10000 Feldern
die ersten 25 felder sind mit einer o gefüllt wenn nichts in der umgebung ist oder mit einer 1 wenn etwas zu essen da ist:
etwa so
Welt:
E ist essen
wird auf dem band etwa zu:
00100000100000010000
So kann die zelle anhand der position der einsen auf dem band erkennen wo etwas zu essen in seiner nähe ist.
Nun zum turingprogramm:
Die turingmaschine zeigt immer auf eine Stelle auf dem band z.b. auf feld 1 in dem eine 2 steht
und besitzt immer einen zustand in dem sie ist z.b. 5
dieser zustand 5 sieht nun z.b. so aus:
wenn 0 auf band schreibe 2 und gehe eins nach links auf band und wechsel zu zustand 3
wenn 1 auf band schreibe 0 und gehe eins nach rechts auf band und wechsel zu zustand 7
wenn 2 auf band schreibe 1 und gehe eins nach links auf band und wechsel zu zustand 1
wenn 3 auf band schreibe 0 und gehe eins nach links auf band und wechsel zu zustand Fertig
wenn beim zeiger eine 2 steht wird an die aktuelle position also eine 1 geschrieben, der zeiger um ein nach links auf dem band verschoben und der zustand 1 aktiviert.
Der zustand wird immer entsprechend dem was auf dem band steht gändert bis der zustand fertig erreicht wurde.
Die KI der zellen sieht nun so aus, das einfach jede Zelle 2000 zustände hat mit deren hilfe das band bearbeitet wird. und einige felder des arrays sind ebend statusflags, die wenn sie ungleich 0 sind etas bewirken, z.B. einen schrit nach oben gehen.
wenn sich eine zelle teilt und mutiert, werden diese zustände Mutiert aus einem
wenn 0 auf band schreibe 2 und gehe eins nach links auf band und wechsel zu zustand 3
wird z.b.
wenn 0 auf band schreibe 1 und gehe eins nach rechts auf band und wechsel zu zustand 3
andere menschen haben die turingmaschine bestimmt schon besser beschrieben, googelt mal!
Ich habe nun begonnen Mauern einzubauen, die bei kontakt töten, das sollte wieder etwas evolutioneren druck aufbauen in richtung lerne umzulenken oder renne in den tot