Rule 110
Details
Print the first 100 rows in the Rule 110 cellular automaton starting from an initial single living cell.
Each new row in the life of the automaton should be a new line, and the rules for whether a cell is alive or dead depends on whether it was alive on the previous iteration, as well as the state of the two neighbouring cells. The rules which dictate whether a cell is alive or dead in the next iteration are as follows:
Previous cells | New centre cell |
---|---|
111 | 0 |
110 | 1 |
101 | 1 |
100 | 0 |
011 | 1 |
010 | 1 |
001 | 1 |
000 | 0 |
The first 10 rows are shown here:
█ ██ ███ ██ █ █████ ██ █ ███ ██ ██ █ ███ ███████ █ ██ ███
0 bytes, 0 chars
Restore solution
Compiled from
AT&T syntax to x86-64 Linux. Use
syscalls to write output.
For accurate byte counts and syntax highlighting, please use the
new editor.
Top-level programs are supported, args holds ARGV.
Implicit using directives for console applications are enabled.
Arguments are available via STDIN, each argument is NULL terminated.
Taking input after EOF leaves the cell unchanged, the tape is circular
with 65536 cells, and cells are 8-bit with wrapping.
Code is compiled with clang with -std=c++2b.
Code is compiled with LDC2.
Arguments are available via STDIN, each argument is NULL terminated.
x is a no-op.
Arguments are available via STDIN, each argument is NULL terminated.
arguments holds ARGV, print() to output with a newline,
write() to output without a newline.
say() is available without any import.
$args to access the arguments.
prolog_flag(argv, Args) to access the arguments.
Arguments are available via STDIN, each argument is seperated with a null byte.
The code is run with -E and -z.
Output replaces null bytes with newlines.
SELECT arg FROM argv to access the arguments, only the first
column of the first result set will be printed, NULL values will be
skipped, and the dialect is SQLite.
Arguments are available via args list variable. To terminate
script execution, write and quit the current buffer.
ctrl + enter or