33 lines
554 B
Text
33 lines
554 B
Text
void
|
|
ant(integer x, y, d, list map)
|
|
{
|
|
while (-1 < x && x < 100 && -1 < y && y < 100) {
|
|
integer e, p, w;
|
|
data b;
|
|
|
|
b = map[y];
|
|
w = b[x >> 3];
|
|
p = 1 << (7 - (x & 7));
|
|
b[x >> 3] = w ^ p;
|
|
|
|
d += w & p ? 1 : 3;
|
|
|
|
e = d & 1;
|
|
set(e, $e + ((d & 2) - 1) * (2 * e - 1));
|
|
}
|
|
}
|
|
|
|
integer
|
|
main(void)
|
|
{
|
|
file f;
|
|
list l;
|
|
|
|
call_n(100, lb_p_data, l, data().run(13, 0));
|
|
ant(50, 50, 2, l);
|
|
|
|
f.create("ant.pbm", 00644).text("P4\n100 100\n");
|
|
l.ucall(f_data, 1, f);
|
|
|
|
0;
|
|
}
|