Samuel Fiedler
Mitglied
Thread Starter
- Dabei seit
- 08.03.2022
- Beiträge
- 3
- Reaktionspunkte
- 0
Hallo im Forum!
Ich habe heute einen linearen zellulären Automaten programmiert. Für weitere Informationen hinsichtlich eines linearen zellulären Automaten siehe Wikipedia.
Der Code ist:
Mein konkretes Problem ist, dass AppleScript auch bei Zellen, die eigentlich als 4 Nachbarn nur 0, 0, 0, 0 haben, 1, 1, 0, 0 anzeigt und somit auch diese Zellen „zum Leben erweckt“. Was außerdem sehr merkwürdig ist, ist, dass dieses Problem nur nach schon lebenden Zellen auftaucht.
Gibt es dafür irgendeinen Ursprung (und hoffentlich eine Lösung) oder gibt es keinen Ursprung (& Lösung) und muss ich eine andere Programmiersprache verwenden?
Ich freue mich auf Antworten und Feedback!
LG
Samuel
Ich habe heute einen linearen zellulären Automaten programmiert. Für weitere Informationen hinsichtlich eines linearen zellulären Automaten siehe Wikipedia.
Der Code ist:
AppleScript:
set links_zwei to 0
set links_eins to 0
set rechts_zwei to 0
set rechts_eins to 0
-- 1 5 10 15 20 25 30 35
set spielfeld to [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
-- 1 5 10 15 20 25 30 35
set spielfeld_neu to [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
set ergebnis to "
+-----------------------------------+
|" & spielfeld & "|
"
repeat with i from 1 to 2
log "Iteration " & i & ":
"
repeat with ii from 3 to 33
log "Teil " & ii & ":
"
set links_zwei to item (ii - 2) of spielfeld
set links_eins to item (ii - 1) of spielfeld
set rechts_eins to item (ii + 1) of spielfeld
set rechts_zwei to item (ii + 2) of spielfeld
log links_zwei
log links_eins
log item ii of spielfeld
log rechts_eins
log rechts_zwei
if links_zwei is 1 and links_eins is 1 and rechts_eins is 0 and rechts_zwei is 0 then
set item ii of spielfeld_neu to 1
else if links_zwei is 1 and links_eins is 0 and rechts_eins is 1 and rechts_zwei is 0 then
set item ii of spielfeld_neu to 1
else if links_zwei is 1 and links_eins is 0 and rechts_eins is 0 and rechts_zwei is 1 then
set item ii of spielfeld_neu to 1
else if links_zwei is 0 and links_eins is 1 and rechts_eins is 1 and rechts_zwei is 0 then
set item ii of spielfeld_neu to 1
else if links_zwei is 0 and links_eins is 1 and rechts_eins is 0 and rechts_zwei is 1 then
set item ii of spielfeld_neu to 1
else if links_zwei is 0 and links_eins is 0 and rechts_eins is 1 and rechts_zwei is 1 then
set item ii of spielfeld_neu to 1
else if links_zwei is 1 and links_eins is 1 and rechts_eins is 1 and rechts_zwei is 0 then
set item ii of spielfeld_neu to 1
else if links_zwei is 1 and links_eins is 1 and rechts_eins is 0 and rechts_zwei is 1 then
set item ii of spielfeld_neu to 1
else if links_zwei is 1 and links_eins is 1 and rechts_eins is 1 and rechts_zwei is 1 then
set item ii of spielfeld_neu to 1
else if links_zwei is 0 and links_eins is 1 and rechts_eins is 1 and rechts_zwei is 1 then
set item ii of spielfeld_neu to 1
else
set item ii of spielfeld_neu to 0
end if
end repeat
set ii to 0
set ergebnis to ergebnis & "|" & spielfeld_neu & "|
"
set spielfeld to spielfeld_neu
end repeat
tell script "replace"
set ergebnis to replace(ergebnis, "0", " ")
set ergebnis to replace(ergebnis, "1", "X")
end tell
set ergebnis to ergebnis & "+-----------------------------------+
"
get ergebnis
Mein konkretes Problem ist, dass AppleScript auch bei Zellen, die eigentlich als 4 Nachbarn nur 0, 0, 0, 0 haben, 1, 1, 0, 0 anzeigt und somit auch diese Zellen „zum Leben erweckt“. Was außerdem sehr merkwürdig ist, ist, dass dieses Problem nur nach schon lebenden Zellen auftaucht.
Gibt es dafür irgendeinen Ursprung (und hoffentlich eine Lösung) oder gibt es keinen Ursprung (& Lösung) und muss ich eine andere Programmiersprache verwenden?
Ich freue mich auf Antworten und Feedback!
LG
Samuel