Menu: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Removed an unnecessary space.) |
(Added Commodore BASIC.) |
||
Line 247: | Line 247: | ||
end function</lang> |
end function</lang> |
||
==={{header|Commodore BASIC}}=== |
|||
While the following example could be shortened to simply print the resulting string indexed by the user input, it is useful to demonstrate that larger menu-driven projects benefit from the use of the <code>ON n... GOSUB</code> statement to pass control to larger subroutines. |
|||
<lang commodorebasic>1 rem menu |
|||
5 rem rosetta code |
|||
10 gosub 900 |
|||
20 print chr$(147);chr$(14) |
|||
30 print " Menu " |
|||
35 print:print "Choose an incantation:":print |
|||
40 for i=1 to 5 |
|||
45 print i;chr$(157);". ";op$(i,1) |
|||
50 next i:print |
|||
55 print "choose one: "; |
|||
60 get k$:if k$<"1" or k$>"5" then 60 |
|||
65 k=val(k$):print chr$(147) |
|||
70 on k gosub 100,200,300,400,500 |
|||
80 if k=5 then end |
|||
90 print:print "Press any key to continue." |
|||
95 get k$:if k$="" then 95 |
|||
96 goto 20 |
|||
100 rem fee fi |
|||
110 print op$(k,2) |
|||
115 return |
|||
200 rem huff puff |
|||
210 print op$(k,2) |
|||
215 return |
|||
300 rem mirror mirror |
|||
310 print op$(k,2) |
|||
315 return |
|||
400 rem tick tock |
|||
410 print op$(k,2) |
|||
415 return |
|||
500 rem quit |
|||
510 print op$(k,2):print "Goodbye!" |
|||
515 return |
|||
900 rem initialize |
|||
905 dim op$(10,2) |
|||
910 for a=1 to 5 |
|||
915 read op$(a,1),op$(a,2) |
|||
920 next a |
|||
925 return |
|||
1000 data "Fee fi fo fum","I smell the blood of an Englishman!" |
|||
1005 data "Huff and puff","The house blew down!" |
|||
1010 data "Mirror, mirror","You seem to be the fairest of them all!" |
|||
1015 data "Tick tock","Time passes..." |
|||
1020 data "<Quit>","You decide to leave."</lang> |
|||
=={{header|Batch File}}== |
=={{header|Batch File}}== |