RosettaCodeData/Task/Langtons-ant/Aime/langtons-ant.aime
2019-09-12 10:33:56 -07:00

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;
}