RosettaCodeData/Task/Menu/Phix/menu.phix

28 lines
878 B
Text
Raw Permalink Normal View History

2016-12-05 23:44:36 +01:00
function menu_select(sequence items, object prompt)
2019-09-12 10:33:56 -07:00
sequence res = ""
items = remove_all("",items)
if length(items)!=0 then
while 1 do
for i=1 to length(items) do
printf(1,"%d) %s\n",{i,items[i]})
end for
puts(1,iff(atom(prompt)?"Choice?":prompt))
res = scanf(trim(gets(0)),"%d")
puts(1,"\n")
if length(res)=1 then
integer nres = res[1][1]
if nres>0 and nres<=length(items) then
res = items[nres]
exit
end if
end if
end while
end if
return res
2016-12-05 23:44:36 +01:00
end function
constant items = {"fee fie", "huff and puff", "mirror mirror", "tick tock"}
2019-09-12 10:33:56 -07:00
constant prompt = "Which is from the three pigs? "
string res = menu_select(items,prompt)
printf(1,"You chose %s.\n",{res})