September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue