Langton's ant: Difference between revisions
Content added Content deleted
Line 146: | Line 146: | ||
=={{header|Aime}}== |
=={{header|Aime}}== |
||
[[File:ant_phpoFTAAk.png|100px|Output png]] |
[[File:ant_phpoFTAAk.png|100px|Output png]] |
||
<lang aime> |
<lang aime>void |
||
⚫ | |||
is_white(list map, integer x, integer y) |
|||
{ |
{ |
||
⚫ | |||
integer p, w; |
|||
integer e, p, w; |
|||
⚫ | |||
b = map[y]; |
b = map[y]; |
||
w = b[x >> 3]; |
w = b[x >> 3]; |
||
p = 1 << (7 - (x & 7)); |
p = 1 << (7 - (x & 7)); |
||
b[x >> 3] = w ^ p; |
b[x >> 3] = w ^ p; |
||
d += w & p ? 1 : 3; |
|||
} |
|||
⚫ | |||
void |
|||
⚫ | |||
⚫ | |||
{ |
|||
⚫ | |||
d += is_white(map, x, y) ? 3 : 1; |
|||
⚫ | |||
if (d & 1) { |
|||
⚫ | |||
} else { |
|||
x += 1 - (d & 2); |
|||
} |
|||
} |
} |
||
} |
} |
||
Line 178: | Line 168: | ||
main(void) |
main(void) |
||
{ |
{ |
||
integer i; |
|||
file f; |
file f; |
||
list l; |
list l; |
||
call_n(100, lb_p_data, l, data().run(13, 0)); |
|||
i = 100; |
|||
while (i) { |
|||
⚫ | |||
l_n_data(l, -1).run(13, 0); |
|||
} |
|||
ant(50, 50, 2, l); |
ant(50, 50, 2, l); |
||
f.create("ant.pbm", 00644); |
f.create("ant.pbm", 00644).text("P4\n100 100\n"); |
||
f.text("P4\n100 100\n"); |
|||
l.ucall(f_data, 1, f); |
l.ucall(f_data, 1, f); |
||