RosettaCodeData/Task/Langtons-ant/Aime/langtons-ant.aime

34 lines
554 B
Text
Raw Permalink Normal View History

2013-06-05 21:47:54 +00:00
void
2019-09-12 10:33:56 -07:00
ant(integer x, y, d, list map)
2013-06-05 21:47:54 +00:00
{
while (-1 < x && x < 100 && -1 < y && y < 100) {
2019-09-12 10:33:56 -07:00
integer e, p, w;
data b;
2013-06-05 21:47:54 +00:00
2019-09-12 10:33:56 -07:00
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));
2013-06-05 21:47:54 +00:00
}
}
integer
main(void)
{
file f;
list l;
2019-09-12 10:33:56 -07:00
call_n(100, lb_p_data, l, data().run(13, 0));
2013-06-05 21:47:54 +00:00
ant(50, 50, 2, l);
2019-09-12 10:33:56 -07:00
f.create("ant.pbm", 00644).text("P4\n100 100\n");
2018-06-22 20:57:24 +00:00
l.ucall(f_data, 1, f);
2013-06-05 21:47:54 +00:00
2018-06-22 20:57:24 +00:00
0;
2013-06-05 21:47:54 +00:00
}