30 lines
794 B
Plaintext
30 lines
794 B
Plaintext
$ include "seed7_05.s7i";
|
|
|
|
const func string: menuSelect (in array string: items, in string: prompt) is func
|
|
result
|
|
var string: selection is "";
|
|
local
|
|
var string: item is "";
|
|
var integer: index is 0;
|
|
var integer: num is 0;
|
|
begin
|
|
if length(items) <> 0 then
|
|
repeat
|
|
for item key index range items do
|
|
writeln(index <& ". " <& item);
|
|
end for;
|
|
write(prompt);
|
|
readln(num);
|
|
until num >= 1 and num <= length(items);
|
|
selection := items[num];
|
|
end if
|
|
end func;
|
|
|
|
const array string: items is [] ("fee fie", "huff and puff", "mirror mirror", "tick tock");
|
|
const string: prompt is "Which is from the three pigs? ";
|
|
|
|
const proc: main is func
|
|
begin
|
|
writeln("You chose " <& menuSelect(items, prompt));
|
|
end func;
|