September 2017 Update

This commit is contained in:
Ingy döt Net 2017-09-23 10:01:46 +02:00
parent bba7bfd280
commit ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions

View file

@ -4,36 +4,17 @@ grid_maze(data b, integer N)
data d;
integer i, j;
j = N;
while (j) {
b_suffix(d, "+---");
j -= 1;
}
{
b_suffix(d, "+\n");
}
call_n(N, b_suffix, d, "+---");
b_suffix(d, "+\n");
j = N;
while (j) {
b_suffix(d, "| * ");
j -= 1;
}
{
b_suffix(d, "|\n");
}
call_n(N, b_suffix, d, "| * ");
b_suffix(d, "|\n");
i = N;
while (i) {
b_extend(b, d);
i -= 1;
}
call_n(N, b_extend, b, d);
b_size(d, N * 4 + 2);
{
b_extend(b, d);
}
b_extend(b, d);
}
void
@ -50,17 +31,18 @@ walk_cell(data b, integer N, integer line_size, integer x, integer y,
while (i < 4) {
integer p, q;
p = x + l_q_integer(x_offsets, (r + i) & 3);
q = y + l_q_integer(y_offsets, (r + i) & 3);
p = x + (p = x_offsets[(r + i) & 3]);
q = y_offsets[(r + i) & 3];
q += y;
if (-1 < p && p < line_size
&& -1 < q && q < line_size * (N * 2 + 1)) {
if (b_text(b, q + p) == '*') {
if (b[q + p] == '*') {
walk_cell(b, N, line_size, p, q, x_offsets, y_offsets);
b_replace(b, (q + y) / 2 + (p + x) / 2, ' ');
if (p == x) {
b_replace(b, (q + y) / 2 + p - 1, ' ');
b_replace(b, (q + y) / 2 + p + 1, ' ');
b[(q + y) / 2 + (p + x) / 2] = ' ';
if (p == x) {
b[(q + y) / 2 + p - 1] = ' ';
b[(q + y) / 2 + p + 1] = ' ';
}
}
}
@ -77,14 +59,8 @@ walk_maze(data b, integer N)
line_size = N * 4 + 1 + 1;
lb_p_integer(x_offsets, 4);
lb_p_integer(y_offsets, 0);
lb_p_integer(x_offsets, 0);
lb_p_integer(y_offsets, line_size * 2);
lb_p_integer(x_offsets, -4);
lb_p_integer(y_offsets, 0);
lb_p_integer(x_offsets, 0);
lb_p_integer(y_offsets, line_size * -2);
l_bill(x_offsets, 0, 4, 0, -4, 0);
l_bill(y_offsets, 0, 0, line_size * 2, 0, line_size * -2);
x = drand(N - 1) * 4 + 2;
y = line_size * (drand(N - 1) * 2 + 1);
@ -101,10 +77,9 @@ main(void)
N = 10;
grid_maze(b, N);
walk_maze(b, N);
o_text(b_string(b));
o_(b);
return 0;
}