Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,56 +0,0 @@
|
|||
with Ada.Text_IO;
|
||||
|
||||
procedure Langtons_Ant is
|
||||
|
||||
Size: constant Positive := 100; -- change this to extend the playground
|
||||
|
||||
subtype Step is Integer range -1 .. +1;
|
||||
|
||||
procedure Right(N, W: in out Step) is
|
||||
Tmp: Step := W;
|
||||
begin
|
||||
W := - N;
|
||||
N := Tmp;
|
||||
end Right;
|
||||
|
||||
procedure Left(N, W: in out Step) is
|
||||
begin
|
||||
for I in 1 .. 3 loop
|
||||
Right(N, W);
|
||||
end loop;
|
||||
end Left;
|
||||
|
||||
Color_Character: array(Boolean) of Character :=
|
||||
(False => ' ', True => '#');
|
||||
|
||||
Is_Black: array (1 .. Size, 1 .. Size) of Boolean :=
|
||||
(others => (others => False)); -- initially, the world is white;
|
||||
|
||||
Ant_X, Ant_Y: Natural := Size/2; -- Position of Ant;
|
||||
Ant_North: Step := 1; Ant_West: Step := 0; -- initially, Ant looks northward
|
||||
|
||||
Iteration: Positive := 1;
|
||||
|
||||
begin
|
||||
loop -- iterate the loop until an exception is raised
|
||||
if Is_Black(Ant_X, Ant_Y) then
|
||||
Left(Ant_North, Ant_West);
|
||||
else
|
||||
Right(Ant_North, Ant_West);
|
||||
end if;
|
||||
Is_Black(Ant_X, Ant_Y) := not Is_Black(Ant_X, Ant_Y);
|
||||
Ant_X := Ant_X - Ant_North; -- this may raise an exception
|
||||
Ant_Y := Ant_Y - Ant_West; -- this may raise an exception
|
||||
Iteration := Iteration + 1;
|
||||
end loop;
|
||||
|
||||
exception
|
||||
when Constraint_Error => -- Ant has left its playground ... now output
|
||||
for X in 1 .. Size loop
|
||||
for Y in 1 .. Size loop
|
||||
Ada.Text_IO.Put(Color_Character(Is_Black(X, Y)));
|
||||
end loop;
|
||||
Ada.Text_IO.New_Line;
|
||||
end loop;
|
||||
Ada.Text_IO.Put_Line("# Iteration:" & Integer'Image(Iteration));
|
||||
end Langtons_Ant;
|
||||
Loading…
Add table
Add a link
Reference in a new issue