Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,169 +0,0 @@
|
|||
with Ada.Text_IO; use Ada.Text_IO;
|
||||
with Ada.Characters; use Ada.Characters;
|
||||
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
|
||||
with Ada.Strings; use Ada.Strings;
|
||||
|
||||
-- procedure main - begins program execution
|
||||
procedure main is
|
||||
type Sketch_Pad is array(1 .. 50, 1 .. 50) of Character;
|
||||
thePen : Boolean := True; -- pen raised by default
|
||||
sketch : Sketch_Pad;
|
||||
ycorr, xcorr : Integer := 25;
|
||||
|
||||
-- specifications
|
||||
function penPosition(thePen : in out Boolean) return String;
|
||||
procedure initGrid(sketch : in out Sketch_Pad);
|
||||
procedure commandMenu(thePen : in out Boolean; xcorr : in out Integer;
|
||||
ycorr : in out Integer);
|
||||
procedure showMenu(xcorr : in out Integer; ycorr : in out Integer;
|
||||
thePen : in out Boolean; sketch : in Sketch_Pad);
|
||||
procedure moveCursor(thePen : in Boolean; sketch : in out Sketch_Pad;
|
||||
xcorr : in out Integer; ycorr : in out Integer;
|
||||
ch : in Integer);
|
||||
procedure showGrid(sketch : in Sketch_Pad);
|
||||
|
||||
-- procedure initGrid - creates the sketchpad and initializes elements
|
||||
procedure initGrid(sketch : in out Sketch_Pad) is
|
||||
begin
|
||||
sketch := (others => (others => ' '));
|
||||
end initGrid;
|
||||
|
||||
-- procedure showMenu - displays the menu for the application
|
||||
procedure showMenu(xcorr : in out Integer; ycorr : in out Integer;
|
||||
thePen : in out Boolean; sketch : in Sketch_Pad) is
|
||||
|
||||
choice : Integer := 0;
|
||||
begin
|
||||
while choice /= 4 loop
|
||||
Set_Col(15);
|
||||
Put("TURTLE GRAPHICS APPLICATION");
|
||||
Set_Col(15);
|
||||
Put("===========================");
|
||||
New_Line(2);
|
||||
|
||||
Put_Line("Enter 1 to print the grid map");
|
||||
Put_Line("Enter 2 for command menu");
|
||||
Put_Line("Enter 3 to raise pen up / down");
|
||||
Put_Line("Enter 4 to exit the application");
|
||||
choice := integer'value(Get_Line);
|
||||
|
||||
exit when choice = 4;
|
||||
|
||||
case choice is
|
||||
when 1 => showGrid(sketch);
|
||||
when 2 => commandMenu(thePen, xcorr, ycorr);
|
||||
when 3 => Put_Line("Pen is "
|
||||
& penPosition(thePen));
|
||||
when others => Put_Line("Invalid input");
|
||||
end case;
|
||||
end loop;
|
||||
end showMenu;
|
||||
|
||||
-- function penPosition - checks changes the state of whether the pen is
|
||||
-- raised up or down. If value is True, pen is rasied up
|
||||
function penPosition(thePen : in out Boolean) return String is
|
||||
str1 : constant String := "raised UP";
|
||||
str2 : constant String := "raised DOWN";
|
||||
begin
|
||||
if thePen = True then
|
||||
thePen := False;
|
||||
return str2;
|
||||
else
|
||||
thePen := True;
|
||||
end if;
|
||||
|
||||
return str1;
|
||||
end penPosition;
|
||||
|
||||
-- procedure command menu - provides a list of directions for the turtle
|
||||
-- to move along the grid
|
||||
procedure commandMenu(thePen : in out Boolean; xcorr : in out Integer;
|
||||
ycorr : in out Integer) is
|
||||
|
||||
choice : Integer := 0;
|
||||
begin
|
||||
while choice <= 0 or choice > 5 loop
|
||||
Set_Col(15);
|
||||
Put("Command Menu");
|
||||
Set_Col(15);
|
||||
Put("============");
|
||||
New_Line(2);
|
||||
|
||||
Put_Line("To move North enter 1");
|
||||
Put_Line("To move South enter 2");
|
||||
Put_Line("To move East enter 3");
|
||||
Put_Line("To move West enter 4");
|
||||
Put_Line("To return to previous menu enter 5");
|
||||
choice := integer'value(Get_Line);
|
||||
|
||||
case choice is
|
||||
when 1 => moveCursor(thePen, sketch, xcorr, ycorr, choice);
|
||||
when 2 => moveCursor(thePen, sketch, xcorr, ycorr, choice);
|
||||
when 3 => moveCursor(thePen, sketch, xcorr, ycorr, choice);
|
||||
when 4 => moveCursor(thePen, sketch, xcorr, ycorr, choice);
|
||||
when 5 => showMenu(xcorr, ycorr, thePen, sketch);
|
||||
when others => Put_Line("Invalid choice");
|
||||
end case;
|
||||
end loop;
|
||||
end commandMenu;
|
||||
|
||||
|
||||
-- procedure moveCursor - moves the cursor around the board by taking the
|
||||
-- x and y coordinates from the user. If the pen is down, a character is
|
||||
-- printed at that location. If the pen is up, nothing is printed but the
|
||||
-- cursor still moves to that position
|
||||
procedure moveCursor(thePen : in Boolean; sketch : in out Sketch_Pad;
|
||||
xcorr : in out Integer; ycorr : in out Integer;
|
||||
ch : in Integer) is
|
||||
|
||||
begin
|
||||
if thePen = True then -- pen up so move cursor but do not draw
|
||||
case ch is
|
||||
when 1 => xcorr := xcorr - 1; ycorr := ycorr;
|
||||
sketch(xcorr, ycorr) := ' ';
|
||||
when 2 => xcorr := xcorr + 1; ycorr := ycorr;
|
||||
sketch(xcorr, ycorr) := ' ';
|
||||
when 3 => xcorr := xcorr; ycorr := ycorr + 1;
|
||||
sketch(xcorr, ycorr) := ' ';
|
||||
when 4 => xcorr := xcorr; ycorr := ycorr - 1;
|
||||
sketch(xcorr, ycorr) := ' ';
|
||||
when others => Put("Unreachable Code");
|
||||
end case;
|
||||
|
||||
else -- pen is down so move cursor and draw
|
||||
case ch is
|
||||
when 1 => xcorr := xcorr - 1; ycorr := ycorr;
|
||||
sketch(xcorr, ycorr) := '#';
|
||||
when 2 => xcorr := xcorr + 1; ycorr := ycorr;
|
||||
sketch(xcorr, ycorr) := '#';
|
||||
when 3 => xcorr := xcorr; ycorr := ycorr + 1;
|
||||
sketch(xcorr, ycorr) := '#';
|
||||
when 4 => xcorr := xcorr; ycorr := ycorr - 1;
|
||||
sketch(xcorr, ycorr) := '#';
|
||||
when others => Put("Unreachable Code");
|
||||
end case;
|
||||
end if;
|
||||
end moveCursor;
|
||||
|
||||
-- procedure showGrid - prints the sketchpad showing the plotted moves
|
||||
procedure showGrid(sketch : in Sketch_Pad) is
|
||||
begin
|
||||
New_Line;
|
||||
|
||||
for I in sketch'Range(1) loop
|
||||
for J in sketch'Range(2) loop
|
||||
Put(character'image(sketch(I,J)));
|
||||
end loop;
|
||||
New_Line;
|
||||
end loop;
|
||||
New_Line;
|
||||
end showGrid;
|
||||
|
||||
begin
|
||||
New_Line;
|
||||
|
||||
initGrid(sketch);
|
||||
showMenu(xcorr, ycorr, thePen, sketch);
|
||||
|
||||
New_Line;
|
||||
end main;
|
||||
Loading…
Add table
Add a link
Reference in a new issue