60 lines
1.6 KiB
Plaintext
60 lines
1.6 KiB
Plaintext
1 rem name game
|
|
2 rem rosetta code
|
|
5 dim cn$(3),bl$(3,32):gosub 1000
|
|
|
|
10 print chr$(147);chr$(14);"Name Game":print
|
|
15 cn$(0)="":cn$(1)="b":cn$(2)="f":cn$(3)="m"
|
|
20 print chr$(147);chr$(14);"Name Game":print:input "Enter any name";n$
|
|
25 rem ensure first letter is lowercase
|
|
30 n$=chr$(asc(n$) and 95)+right$(n$,len(n$)-1)
|
|
35 rem check vowels
|
|
40 v$="aeiou":i$=left$(n$,1):v=0
|
|
45 for i=1 to 5:v=i$=mid$(v$,i,1):if not v then next i
|
|
50 if v then tn$=n$:goto 70
|
|
55 gosub 500
|
|
60 if bl then goto 70
|
|
65 tn$=right$(n$,len(n$)-1):gosub 600
|
|
70 rem capitalize first letter in name
|
|
75 n$=chr$(asc(n$) or 128)+right$(n$,len(n$)-1)
|
|
80 gosub 700
|
|
83 print:print "Again? (Y/N)"
|
|
85 get k$:if k$<>"y" and k$<>"n" then 85
|
|
90 if k$="y" then goto 10
|
|
95 end
|
|
|
|
500 rem check blends
|
|
510 bl=0:for g=3 to 1 step -1
|
|
520 l$=left$(n$,g+1):tn$=right$(n$,len(n$)-(g+1))
|
|
530 for i=1 to 32:if l$=bl$(g,i) then bl=-1:return
|
|
540 next i:next g
|
|
550 return
|
|
|
|
600 rem check b, f, and m
|
|
610 for i=1 to 3:if cn$(i)=chr$(asc(n$)) then cn$(i)=""
|
|
620 next i:return
|
|
|
|
700 rem sing the verse
|
|
710 print:print n$;", ";n$;", bo-";cn$(1);tn$
|
|
720 print " Banana-fana fo-";cn$(2);tn$
|
|
730 print " Fee-fi-mo-";cn$(3);tn$
|
|
740 print n$;"!"
|
|
750 return
|
|
|
|
1000 rem load blends
|
|
1010 for g=1 to 3
|
|
1015 for i=1 to 32
|
|
1020 read bl$(g,i):if bl$(g,i)="xx" then next g:return
|
|
1030 next i
|
|
|
|
2000 rem digraphs
|
|
2005 data bl,br,ch,ck,cl,cr,dr,fl,fr,gh,gl,gr,ng
|
|
2010 data ph,pl,pr,qu,sc,sh,sk,sl,sm,sn,sp,st,sw
|
|
2020 data th,tr,tw,wh,wr
|
|
2029 data xx
|
|
2030 rem trigraphs
|
|
2040 data chr,sch,scr,shr,spl,spr,squ,str,thr
|
|
2049 data xx
|
|
2050 rem quadgraph
|
|
2060 data schr,schl
|
|
2069 data xx
|