xplshn
·
2025-08-13
rule110.b
B
1// -*- mode: simpc -*-
2
3word;
4
5display(base, n) {
6 extrn printf;
7 auto i;
8
9 i = 0;
10 while (i < n) {
11 if (base[i]) printf("#"); else printf(".");
12 i += 1;
13 }
14 printf("\n");
15}
16
17next(base, n) {
18 auto i, state;
19
20 state = base[0] | base[1] << 1;
21 i = 2;
22 while (i < n) {
23 state <<= 1;
24 state |= base[i];
25 state &= 7;
26 base[i - 1] = (110>>state)&1;
27 i += 1;
28 }
29}
30
31main() {
32 extrn malloc, memset;
33 auto base, n;
34
35 word = &0[1]; /* trick to obtain the word size */
36 n = 100;
37 base = malloc(word*n);
38 memset(base, 0, word*n);
39 base[n - 2] = 1;
40
41 display(base, n);
42 auto i;
43 i = 0;
44 while (i < n - 3) {
45 next(base, n);
46 display(base, n);
47 i += 1;
48 }
49}