28 lines
786 B
Ada
28 lines
786 B
Ada
with ada.text_io,Ada.Strings.Unbounded; use ada.text_io, Ada.Strings.Unbounded;
|
|
|
|
procedure menu is
|
|
type menu_strings is array (positive range <>) of Unbounded_String ;
|
|
function "+" (s : string) return Unbounded_String is (To_Unbounded_String (s));
|
|
|
|
function choice (m : menu_strings; prompt : string) return string is
|
|
begin
|
|
if m'length > 0 then
|
|
loop
|
|
put_line (prompt);
|
|
for i in m'range loop
|
|
put_line (i'img &") " & To_String (m(i)));
|
|
end loop;
|
|
begin
|
|
return To_String (m(positive'value (get_line)));
|
|
exception when others => put_line ("Try again !");
|
|
end;
|
|
end loop;
|
|
end if;
|
|
return "";
|
|
end choice;
|
|
|
|
begin
|
|
put_line ("You chose " &
|
|
choice ((+"fee fie",+"huff and puff",+"mirror mirror",+"tick tock"),"Enter your choice "));
|
|
end menu;
|