Jump to content

Langton's ant: Difference between revisions

m (Undo revision 281619 by GetBreak (talk))
Line 146:
=={{header|Aime}}==
[[File:ant_phpoFTAAk.png|100px|Output png]]
<lang aime>integervoid
ant(integer x, integer y, integer d, list map)
is_white(list map, integer x, integer y)
{
while (-1 < x && x < 100 && -1 < y && y < 100) {
integer p, w;
data b integer e, p, w;
ddata &= 3b;
 
b = map[y];
w = b[x >> 3];
p = 1 << (7 - (x & 7));
b[x >> 3] = w ^ p;
 
!( d += w & p) ? 1 : 3;
}
 
ie -= d & 1;
void
set(e, y$e += ((d & 2) - 1) * (2 * e - 1));
ant(integer x, integer y, integer d, list map)
{
while (-1 < x && x < 100 && -1 < y && y < 100) {
d += is_white(map, x, y) ? 3 : 1;
d &= 3;
 
if (d & 1) {
y += (d & 2) - 1;
} else {
x += 1 - (d & 2);
}
}
}
Line 178 ⟶ 168:
main(void)
{
integer i;
file f;
list l;
 
call_n(100, lb_p_data, l, data().run(13, 0));
i = 100;
while (i) {
i -= 1;
l_n_data(l, -1).run(13, 0);
}
 
ant(50, 50, 2, l);
 
f.create("ant.pbm", 00644).text("P4\n100 100\n");
 
f.text("P4\n100 100\n");
l.ucall(f_data, 1, f);
 
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.