One-dimensional cellular automata: Difference between revisions
Content added Content deleted
(Go solution) |
|||
Line 801: | Line 801: | ||
Generation 8: __##________________ |
Generation 8: __##________________ |
||
Generation 9: __##________________ |
Generation 9: __##________________ |
||
=={{header|Go}}== |
|||
<lang go>package main |
|||
import "fmt" |
|||
const start = "_###_##_#_#_#_#__#__" |
|||
func main() { |
|||
g0 := []byte(start) |
|||
g1 := []byte(start) |
|||
fmt.Println(string(g0)) |
|||
last := len(g0) - 1 |
|||
for g := 0; g < 10; g++ { |
|||
for i := 1; i < last; i++ { |
|||
switch { |
|||
case g0[i-1] != g0[i+1]: |
|||
g1[i] = g0[i] |
|||
case g0[i] == '_': |
|||
g1[i] = g0[i-1] |
|||
default: |
|||
g1[i] = '_' |
|||
} |
|||
} |
|||
fmt.Println(string(g1)) |
|||
copy(g0, g1) |
|||
} |
|||
}</lang> |
|||
Output: |
|||
<pre> |
|||
_###_##_#_#_#_#__#__ |
|||
_#_#####_#_#_#______ |
|||
__##___##_#_#_______ |
|||
__##___###_#________ |
|||
__##___#_##_________ |
|||
__##____###_________ |
|||
__##____#_#_________ |
|||
__##_____#__________ |
|||
__##________________ |
|||
__##________________ |
|||
__##________________ |
|||
</pre> |
|||
=={{header|Haskell}}== |
=={{header|Haskell}}== |