with Ada.Text_IO; use Ada.Text_IO;
--All cred för denna går till Markus Larsson <3
procedure Traffic_Light is
procedure Print_Diods (Color : in Character; Number_Of_Lights : in Integer) is --Skriver ut dioderna som
--ska vara tända
--parametrarna är färg och antal dioder
begin
for I in 1..Number_Of_Lights loop
Put(Color);
end loop;
end Print_Diods;
procedure Print_Bulb(Color : in Character) is --Skriver ut de rader som rör lampan
--paramtern visar vilken färg dioderna ska lysa i
begin
Put("|/");
Print_Diods(Color, 4);
Put_Line("\|");
for I in 1..2 loop
Put("|");
Print_Diods(Color, 6);
Put_Line("|");
end loop;
Put("|\");
Print_Diods(Color, 4);
Put_Line("/|");
end Print_Bulb;
procedure Check_Bulb(Lit : in Boolean; Color : in Character) is --Kontrollerar om lampan är tänd eller ej.
--parametrar är om lampan ska vara tänd
--samt färg
begin
if Lit = True then
Print_Bulb(Color);
else
Print_Bulb('.');
end if;
end Check_Bulb;
procedure Print_Light(R, Y, G : in Boolean) is --Skriver ut ramen för trafikljuset, parametrarna är
--vilka lampor som ska tändas/släckas
begin
Put_Line(" ______ ");
Put_Line("/ ____ \");
Check_Bulb(R, 'R');
Put_Line("| |");
Check_Bulb(Y, 'Y');
Put_Line("| |");
Check_Bulb(G, 'G');
Put_Line("\ ____ /");
Put_Line(" || ");
end Print_Light;
begin
Print_Light(True, False, False);
Print_Light(False, True, False);
Print_Light(False, False, True);
Print_Light(True, True, False);
Print_Light(False, True, True);
end Traffic_Light;