home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 2: PC / frozenfish_august_1995.bin / bbs / d09xx / d0950.lha / BBDoors / BBDoors65.lha / rexxDoors / Wheel_Of_Fortune.rexx < prev    next >
OS/2 REXX Batch file  |  1993-08-07  |  42KB  |  1,440 lines

  1. /*   $VERS: 4.2 Wheel_Of_Fortune.rexx 11 March 1993 (11.3.93)
  2.  
  3.    This game was originally written by Nick Brenkle
  4.    for the skyline bbs system.
  5.    This version has been been adapted to run on
  6.    Richard Stockton's BBBBS, and has been greatly enhanced
  7.    by Matt English, Sysop - The Alternative BBS (503)761-3043
  8.    This game is freely distributable as long as
  9.    the opening credits remain and you don't make money
  10.    off of it!  Enjoy!
  11. */
  12.  
  13.  
  14. options results
  15. FF='0C'x  /* FormFeed */
  16. CR='0D'x  /* Carraige Return */
  17.  
  18. CALL TIME('R')
  19. SIGNAL ON BREAK_C
  20. SIGNAL ON BREAK_E
  21.  
  22. bbspath=GETCLIP('BBS_path')
  23. bbspath=bbspath'rexxDoors/Data/'
  24.  
  25. PARSE arg Username winnings . colorflag secs .
  26. IF ~DATATYPE(secs,'N') THEN secs=3600
  27. signal on syntax
  28.  
  29. def=''
  30. pen.2=''
  31. pen.3=''
  32. pen.4=''
  33. pen.5=''
  34. pen.6=''
  35. pen.7=''
  36. cls = 'H'
  37. IF colorflag=1 THEN
  38.   DO
  39.     def=''
  40.     pen.2=''
  41.     pen.3=''
  42.     pen.4=''
  43.     pen.5=''
  44.     pen.6=''
  45.     pen.7=''
  46.     cls = 'H'
  47.   END
  48.  
  49. bmoney = ''
  50.  
  51. startup:
  52.  
  53. /* Open the support library if it is not already open. */
  54. if ~show('L',"rexxsupport.library") then do
  55.     addlib('rexxsupport.library',0,-30,0)
  56.      end
  57.  
  58. i = random(1,999,time('S')) /* initalize random number generator */
  59.  
  60. say''cls''
  61. say cr
  62. say'                 'pen.2'************** Wheel of Fortune **************'def||CR
  63. say'                          'pen.4'Now featuring a 'pen.3'BONUS 'pen.4'round!!'def''CR
  64. say cr
  65. say'                              version 4.2 3-11-93'cr
  66. say'                                by Matt English 'cr
  67. say'                           (original by Nick Brenkle)  'cr
  68. say cr
  69.  
  70. /* open and read users account. If no account, set one up */
  71.  
  72. player = upper(Username)
  73.  
  74.   call open('infile',bbspath'WoF.players','R')
  75.   call open('newdata','RAM:wof.player.data','W')
  76.      puzwon = 0
  77.      monwon = 0
  78.      puzcur = puznum
  79.      moncur = 0
  80.      tplayed = 0 /* Times played */
  81.      pct = 0
  82.      Bonuswins = 0
  83.   do until eof('infile')
  84.      line = readln('infile')
  85.      parse var line name'|'num1'|'num2'|'num3'|'num4'|'num5'|'num6'|'num7
  86.      if (player == name) then do
  87.            puzwon = num1
  88.            monwon = num2
  89.            puzcur = num3
  90.            moncur = num4
  91.            tplayed = num5
  92.            pct = num6
  93.            if num7 = '' then do
  94.             num7 = 0
  95.             line = name'|'num1'|'num2'|'num3'|'num4'|'num5'|'num6'|'num7
  96.             end
  97.            BonusWins = num7
  98.       end
  99.      if (player ~= name) & (line ~='') then call writeln('newdata',line)
  100.   end
  101.   call close('infile')
  102.   call close('newdata')
  103.   call open(datafile,bbspath'WoF.dat','R')
  104.    puznum = readln(datafile)
  105.    current = readln(datafile)
  106.    puzzle = readln(datafile)
  107.    guessed = readln(datafile)
  108.    clue = readln(datafile)
  109.  
  110.    if exists(bbspath'WoF.puzzles') then do
  111.      authorline = readln(datafile)
  112.      parse var authorline author autopuznum   /*Current Auto generated puzzle number*/
  113.      author = strip(author)
  114.      if autopuznum = '' then autopuznum = 1
  115.      autopuznum = strip(autopuznum)
  116.      end
  117.    else author = readln(datafile)
  118.  
  119.    last = readln(datafile)
  120.    letleft = readln(datafile) /*letters left in this puzzle*/
  121.   call close(datafile)
  122.   vowels = 'AEIOU'
  123.   const = 'BCDFGHJKLMNPQRSTVWXYZ'
  124.   alllets = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  125.   monsig = 0
  126.  
  127. /**********************************************************************/
  128. /*        OPEN THE STATS FILE FOR STATS DISPLAY                       */
  129. /**********************************************************************/
  130.  
  131.   call open(statfile,bbspath'WoF.stat','R')
  132.    mostplays = readln(statfile) /* MOST TIMES PLAYED */
  133.    mostwins = readln(statfile) /* MOST PUZZLES WON */
  134.    mostmon = readln(statfile)  /* MOST $ WON TOTAL */
  135.    mostsigl = readln(statfile) /* MOST $ WON IN A SINGLE GAME */
  136.    mostBonusWins = readln(statfile) /* Most Bonus games won */
  137.   if mostBonusWins = '' then do
  138.    mostBonusWins = 'MATT_ENGLISH|1'
  139.    end
  140.   call close(statfile)
  141.  first = 0
  142.  
  143.  do until answer = 8
  144.   if first = 1 then say cls
  145.   say ''cr
  146.   say pen.7'                  ++++++++++++++++++++++++++++++++++++++++++++++'def||cr
  147.   say pen.7'                  +           'pen.4'Wheel of Fortune Menu            'pen.7'+'def||cr
  148.   say pen.7'                  ++++++++++++++++++++++++++++++++++++++++++++++'def||cr
  149.   say ''cr
  150.   say ''cr
  151.   say '                       'pen.6'1. 'pen.7'View the alltime High scores'def||cr
  152.   say '                       'pen.6'2. 'pen.7'View 'player'''s stats'def||cr
  153.   say '                       'pen.6'3. 'pen.7'View 'pen.3'ALL 'pen.7'players stats'def||cr
  154.   say '                       'pen.6'4. 'pen.7'See who beat the last 10 puzzles'def||cr
  155.   say '                       'pen.6'5. 'pen.7'How do I play? (Instructions)'def||cr
  156.   say '                       'pen.6'6. 'pen.7'Check the wheel odds'def''cr
  157.   say '                       'pen.6'7. 'pen.7'See a revealing picture of Vanna!'def''cr
  158.   say '                       'pen.6'8. 'pen.7'Play Wheel of Fortune!'def''cr
  159.   say '                       'pen.3'9. Quit'def''cr
  160.   say ''cr
  161.   options prompt "                  Your choice: > "
  162.   call HOTSTAT
  163.  
  164.    if answer = 1 then call VATIME
  165.    if answer = 2 then call VPSTATS
  166.    if answer = 3 then call VASTATS
  167.    if answer = 4 then call VL5PUZ
  168.    if answer = 5 then call inst
  169.    if answer = 6 then call odds
  170.    if answer = 7 then call Vanna
  171.    if answer = 9 then do
  172.     say cr
  173.     say cr
  174.     say' 'pen.7' OK, fine.. be that way..'def''cr
  175.     say cr
  176.     say' Returning to the BBS..'cr
  177.     call delay(50)
  178.     exit
  179.     end
  180.   first = 1
  181.   end
  182.  
  183. /**********************************************************************/
  184. /* check player against last and author  Check for errors */
  185.  if (puznum == 0) then do
  186.      SAY ''cr
  187.      SAY '  There is an error in the puzzle file. Vanna and Pat are 'cr
  188.      SAY '  trying to fix it. Thank you for your patience.'cr
  189.      SAY ''cr
  190.      call CloseShop
  191.      exit
  192.    end
  193.  if (player == author) then do
  194.      SAY ''cr
  195.      SAY '  Vanna and Pat approach you from the wings. Vanna gives'cr
  196.      SAY '  a playful slap on the back of the hand. Pat says "Naughty.'cr
  197.      SAY '  You wrote the puzzle and must wait until someone wins."'cr
  198.      SAY ''cr
  199.      Say '  However, we will show you how your puzzle is doing before'cr
  200.      Say '                      we kick you out.'cr
  201.      say ''cr
  202.    SAY ' 'pen.6'Current Puzzle: 'current''def''cr
  203.    SAY ' 'pen.6'Clue: 'clue''def''cr
  204.    SAY ' 'pen.6'Guessed: 'guessed''def''cr
  205.    SAY ''cr
  206.    Call pressreturn
  207.    say ''cr
  208.    say'                           BYE!'cr
  209.      call CloseShop
  210.      exit
  211.     end
  212.  if (player == last) then do
  213.      SAY ''
  214.      SAY '  Pat laughs in your face and signals for a bouncer to throw'cr
  215.      SAY '  you out of the studio. You were the last player and must'cr
  216.      SAY '  wait for someone else to play.'cr
  217.      say cr
  218.      say cr
  219.      say' 'pen.6' Returning to the BBS...'def''
  220.      call CloseShop
  221.      exit
  222.     end
  223.  
  224. /* check last time played and zero score if necessary */
  225.  
  226.  if (puznum ~= puzcur) then do
  227.     puzcur = puznum
  228.     moncur = 0
  229.   end
  230.  
  231. /* menu section */
  232.    SAY ''cr
  233.    SAY ''cr
  234.    SAY ''cr
  235.    CALL SAC70'The last player was 'pen.3||last||def
  236.    SAY ''cr
  237.    SAY ''cr
  238.    SAY ''cr
  239.    SAY '   Pat Sayjack welcomes you to the show. "How are you 'player'?'cr
  240.    SAY '   Glad to have you on the show. Hey Vanna, lets see some cleavage,'cr
  241.    SAY '   I mean, lets see the puzzle!"'cr
  242.    say ''cr
  243.    say cr
  244.    call pressreturn
  245.    say cls
  246.  
  247. pos.1 ='56H' ; pos.2 ='59H' ; pos.3 ='63H' ; pos.4 ='64H'
  248. pos.5 ='65H' ; pos.6 ='66H' ; pos.7 ='65H' ; pos.8 ='64H'
  249. pos.9 ='63H' ; pos.10 ='59H' ; pos.11 ='56H' ; pos.12 ='54H'
  250. pos.13 ='53H' ; pos.14 ='52H' ; pos.15 ='53H' ; pos.16 ='54H'
  251. pprompt ='3H'
  252. pcash='58H'
  253. c.1 ='100' ; c.2='200' ; c.3 ='300'; c.4='400'; c.5='500' ; c.6='50'
  254. vowmess = '18H'
  255. mess1 = '5H'
  256. mess2 = '5H'
  257. pgus = '11H'
  258. pfrspns = '14H'
  259. pguess = '3H'
  260. pmon = '15H'
  261. pcurpuz = '8H'
  262.  
  263. HasSpun = 0
  264. nfs = 0
  265. PLAY:
  266.  do forever
  267.    SAY pen.7'        *****************************************************'def||CR
  268.    SAY pen.7'        *'pen.6' ---------------- Wheel of Fortune --------------- 'pen.7'*'def||cr
  269.    SAY pen.7'        *****************************************************'def||CR
  270.    say cr
  271.  
  272. puzz = left(puznum,5,' ')
  273. aut = left(author,24,' ')
  274. say'                Puzzle # 'puzz' written by 'aut''cr
  275. say ''cr
  276. SAY ' Current Puzzle: 'pen.3''current''def''cr
  277. SAY ' Clue: 'pen.7''clue''def''cr
  278. SAY ' Guessed: 'pen.5''guessed''def''cr
  279. nfs = left(nfs,2,' ')
  280. say' Free Spins: 'pen.6''nfs''def'                                        'pen.2'50 'pen.3'200 'pen.4'50'def''cr
  281. monc = left(moncur,8,' ')
  282. say' Winnings = $ 'pen.2''monc''def'                               'pen.5'100       'pen.6'400'def''cr
  283. say'                                                    'pen.7'400         'pen.2'300'def''cr
  284. say' 'pen.3'['pen.6'S'pen.3']'def'pin the Wheel                                  'pen.3'500           'pen.4'100'def''cr
  285. say' 'pen.3'['pen.6'G'pen.3']'def'uess the puzzle                                 'pen.5'300         'pen.6'200'def''cr
  286. say' 'pen.3'['pen.6'B'pen.3']'def'uy a Vowel                                       'pen.7'100       'pen.2'300'def''cr
  287. say' 'pen.3'['pen.6'Q'pen.3']'def'uit WoF                                            'pen.3'50 'pen.4'500 'pen.5'50'def''cr
  288. say cr
  289. say cr
  290. say cr
  291. say cr
  292.  
  293. play2:
  294.   say''pcurpuz''pen.3''current''def''
  295.   say''pgus''pen.5''guessed''def''
  296.   say''pfrspns''pen.6''nfs''def''
  297.   say''pmon'        '
  298.   say''pmon''pen.2''moncur''
  299.   CALL CHKVOWEL
  300.    IF ALLVOW = YES THEN say''vowmess''pen.3'Only vowels remain in this puzzle.'def''
  301.  
  302.    if NoCarrier() then call DieGracefully
  303.    if HasSpun = 0 then call getsel
  304.    call clrl pprompt
  305.    SEL = upper(SEL)
  306.    if (SEL == 'S') then do
  307.     if HasSpun = 0 then do
  308.      call clrl mess1
  309.      call clrl mess2
  310.        money = random(1,26,time('s'))
  311.         if money = 1 then call FREESPIN
  312.         if money > 1 & money < 4 then call BANKRPT
  313.         if money = 4 then call LTURN
  314.         if money = 5 then money = 1000
  315.         if money > 5 & money < 8 then money = 500
  316.         if money > 7 & money < 10 then money = 400
  317.         if money > 9 & money < 13 then money = 300
  318.         if money > 12 & money < 16 then money = 200
  319.         if money > 15 & money < 21 then money = 100
  320.         if money > 20 & money <26 then money = 50
  321.         if money = 26 then call FREESPIN
  322.  
  323.        call spinit
  324.       end
  325.  
  326.        if NoCarrier() then call DieGracefully
  327.        OPTIONS prompt ''pprompt'Your guess for $'money' > '
  328.        CALL HOTKEY
  329.        gss = upper(strip(gss))
  330.        gss = left(gss,1)
  331.        HasSpun = 0
  332.        if ~(instring(gss,guessed)) then do
  333.          if (instring(gss,const)) then do
  334.           if (instring(gss,puzzle)) then do
  335.             call clrl mess1
  336.             SAY ''mess1'                        GOOD GUESS!'cr
  337.             guessed = guessed||gss
  338.             moncur = moncur + (money * CountIn(puzzle,gss))
  339.             current = uncover(current,puzzle,gss)
  340.             letleft = translate(letleft, ,gss)
  341.             HasSpun = 0
  342.             say''cr
  343.             say''cr
  344.             SAY ''mess2'               There were 'CountIn(puzzle,gss)' 'gss' ''s in the puzzle.'cr
  345.           end
  346.           else do
  347.          if nfs > 0 then do
  348.           call clrl mess1
  349.           say ''cr
  350.           say''mess1'                         'pen.3'WRONG!'def''
  351.           say ''cr
  352.           say''mess2''pen.7' Since you have a Free Spin, it''s still your turn!'def''
  353.           nfs = nfs - 1
  354.           guessed = guessed||gss
  355.           letleft = translate(letleft, ,gss)
  356.           HasSpun = 0
  357.           say ''cr
  358.           call pressreturn
  359.           say ''cr
  360.           call PLAY2
  361.          end
  362.             call clrl mess1
  363.             SAY ''mess1'                     'pen.3'WRONG!!'def''cr
  364.             call delay(25)
  365.             SAY ''mess2'             'pen.2'Better luck next time..'def''cr
  366.             call delay(100)
  367.             SAY cls
  368.             say cr
  369.             say cr
  370.             say''pen.6'  Returning to the BBS...'def''cr
  371.             guessed = guessed||gss
  372.           letleft = translate(letleft, ,gss)
  373.             call quit puznum,current,puzzle,guessed,clue,author,autopuznum,player,letleft
  374.             call quit2 player,puzwon,monwon,puzcur,moncur,tplayed,BonusWins
  375.             call quit3 player,tplayed,puzwon,monwon,monsig,BonusWins
  376.             call CloseShop
  377.             exit
  378.             end
  379.           end
  380.          else do
  381.           call clrl mess1
  382.           SAY ''mess1' 'pen.4'               Illegal Character. (or Vowel)'def''cr
  383.           HasSpun = 1
  384.           call play2
  385.           end
  386.          end
  387.        else do
  388.         call clrl mess1
  389.         SAY ''mess1'   'pen.4'                Letter Guessed Already'def''cr
  390.         HasSpun = 1
  391.         call play2
  392.         end
  393.        call play2
  394.    end
  395.    if (SEL == 'B') then do
  396.    call clrl mess1
  397.    call clrl mess2
  398.     if moncur > 249 then do
  399.       call clrl mess1
  400.       SAY ''mess1'             'pen.7'Enter The Vowel You wish to Guess.'def''
  401.       say''mess2'                'pen.6'   All vowels cost 'pen.3'$250'def''cr
  402.       if NoCarrier() then call DieGracefully
  403.       else nop
  404.       Options prompt ''pprompt' Guess > '
  405.       call hotkey
  406.       gss = upper(gss)
  407.       gss = left(gss,1)
  408.       if ~(instring(gss,guessed)) then do
  409.         if instring(gss,vowels) then do
  410.          if (instring(gss,puzzle)) then do
  411.             call clrl mess1
  412.             call clrl mess2
  413.             SAY ''mess1'                        GOOD GUESS!'cr
  414.             guessed = guessed||gss
  415.           letleft = translate(letleft, ,gss)
  416.             moncur = moncur - 250
  417.             if (moncur < 0) then moncur = 0
  418.             current = uncover(current,puzzle,gss)
  419.             SAY ''mess2'               There were 'CountIn(puzzle,gss)' 'gss' ''s in the puzzle.'cr
  420.             call play2
  421.           end
  422.          else do
  423.          if nfs > 0 then do
  424.           call clrl mess1
  425.           say''mess1''      pen.3'WRONG!  $250 has been deducted.'def''
  426.           moncur = moncur - 250
  427.           say''mess2'  'pen.7'Since you have a Free Spin, it''s still your turn!'def''
  428.           call delay(50)
  429.           nfs = nfs - 1
  430.             guessed = guessed||gss
  431.           letleft = translate(letleft, ,gss)
  432.           call PLAY2
  433.          end
  434.             call clrl mess1
  435.             say''mess1''      pen.3'WRONG!  $250 has been deducted.'def''
  436.             moncur = moncur - 250
  437.             say''mess2'          Awwww.. Better luck next time.'
  438.             call delay(100)
  439.             say cls
  440.             guessed = guessed||gss
  441.           letleft = translate(letleft, ,gss)
  442.             call quit puznum,current,puzzle,guessed,clue,author,autopuznum,player,letleft
  443.             call quit2 player,puzwon,monwon,puzcur,moncur,tplayed,BonusWins
  444.             call quit3 player,tplayed,puzwon,monwon,monsig,BonusWins
  445.             call CloseShop
  446.             exit
  447.             end
  448.         end
  449.         else do
  450.          call clrl mess1
  451.          call clrl mess2
  452.          SAY ''mess2'                       Not A Vowel.'cr
  453.          call play2
  454.          end
  455.       end
  456.       else do
  457.        call clrl mess1
  458.        call clrl mess2
  459.        SAY ''mess2'                  Vowel Already Guessed.'cr
  460.        call play2
  461.        end
  462.      end
  463.     else do
  464.      call clrl mess1
  465.      call clrl mess2
  466.      SAY ''mess2'  Not Enough Money To Buy a Vowel, you''ll need at least $250.'cr
  467.      call play2
  468.      end
  469.     end
  470.    if (SEL == 'G') then do
  471.    call clrl mess1
  472.    call clrl mess2
  473.        SAY ''mess2'Type guess directly beneath current puzzle:'cr
  474.        SAY ''pguess'     >'current''cr
  475.        if NoCarrier() then call DieGracefully
  476.        Options prompt ''pprompt'     >'
  477.        call hotkeysolv
  478.        solv = upper(solv)
  479.        if solv == puzzle then do
  480.         call delay(100)
  481.         say cls
  482.           SAY ''cr
  483.           SAY ''cr
  484.           SAY '                          'pen.7'CONGRATULATIONS!!'def''cr
  485.           SAY ''cr
  486.           SAY '              'pen.3'You just won $'moncur' in cash and prizes!'def''cr
  487.           call winner player,puzzle
  488.           CALL bonus
  489.           bon = ''
  490.           CALL SetClip('BBS_winnings',winnings+moncur+bwins)
  491.           puzwon = puzwon + 1
  492.           if bwins ~= 0 then puzwon = puzwon + 1
  493.           monsig = moncur
  494.           monwon = monwon + moncur + bwins
  495.  
  496.           if exists(bbspath'wof.puzzles') then do
  497.            say ''cr
  498.            say' As the winner you have to make a choice....'cr
  499.            say ''cr
  500.            say''pen.3'    1. I want to enter the next puzzle'def''cr
  501.            say ''cr
  502.            say''pen.4'    2. Let the BBS generate the next puzzle'def''cr
  503.            say'    (You''ll be able to play a BBS generated puzzle)'cr
  504.            say ''cr
  505.            options prompt''pen.5'    Your choice > '
  506.            pull choice
  507.            if choice = '2' then call generate
  508.            end
  509.  
  510.           say ''cr
  511.           say'OK, 'player', please enter the next puzzle.'cr
  512.           say ''cr
  513.           if NoCarrier() then call NoPuzzle
  514.           Options prompt 'Puzzle:'
  515.           call hotpuz
  516.           puzzle = upper(puzzle)
  517.           letleft = puzzle
  518.           if NoCarrier() then call NoPuzzle
  519.           Options prompt 'Clue:'
  520.           call hotclue
  521.  
  522.           clue = answer
  523.           current = cover(puzzle)
  524.           puznum = puznum + 1
  525.           call quit puznum,current,puzzle,'',clue,player,autopuznum,player,letleft
  526.           call quit2 player,puzwon,monwon,puzcur,moncur,tplayed,BonusWins
  527.           call quit3 player,tplayed,puzwon,monwon,monsig,BonusWins
  528.           say 'Thank you, your puzzle will be waiting for the next player!'cr
  529.           call CloseShop
  530.           exit
  531.           end
  532.        else do
  533.          if nfs > 0 then do
  534.           call clrl mess1
  535.           say''mess1'                        'pen.3'WRONG!'def''
  536.           call clrl pguess
  537.           say''mess2'   'pen.7'Since you have a Free Spin, it''s still your turn!'def''
  538.           call delay(50)
  539.           nfs = nfs - 1
  540.           call PLAY2
  541.          end
  542.           say cls
  543.           say cr
  544.           say cr
  545.           SAY '          'pen.3'Wrong! Try again when there are more letters showing.'def''cr
  546.           say ''cr
  547.           say' 'pen.6'Returning to the BBS....'def''cr
  548.           call quit puznum,current,puzzle,guessed,clue,author,autopuznum,player,letleft
  549.           call quit2 player,puzwon,monwon,puzcur,moncur,tplayed,BonusWins
  550.           call quit3 player,tplayed,puzwon,monwon,monsig,BonusWins
  551.           call CloseShop
  552.           exit
  553.           end
  554.        end
  555.    if (SEL == 'Q') then do
  556.     call clrl mess1
  557.     call clrl mess2
  558.     say''mess1'                       Ok, Quiting....'
  559.     say''mess2'                    Try again next time!'
  560.     call delay(100)
  561.     say cls
  562.     say cr
  563.     say''pen.6' Returning to the BBS...'def''cr
  564.           call quit puznum,current,puzzle,guessed,clue,author,autopuznum,player,letleft
  565.           call quit2 player,puzwon,monwon,puzcur,moncur,tplayed,BonusWins
  566.           call quit3 player,tplayed,puzwon,monwon,monsig,BonusWins
  567.           call CloseShop
  568.           exit
  569.           end
  570. call clrl mess1
  571. call clrl mess2
  572. call play2
  573. end
  574.  
  575. /*************************** WoF Procedures *******************************/
  576.  
  577. odds:
  578.    say cr
  579.    say cr
  580.    call sac70''pen.2'Wheel Spots / Odds'def''
  581.    call sac70''pen.2'1-$1000, 2-$500, 2-$400, 3-$300, 3-$200, 5-$100, 5-$50'def''
  582.    call sac70''pen.2'2-Free Spin, 1-Lose turn, 2-Bankrupt''s'def''
  583.    say cr
  584.    say cr
  585.    call sac70''pen.7'Bonus Wheel Multiplier - 10 thru 20'def''
  586.    say cr
  587.    say cr
  588.    call sac70'      'pen.3'BONUS 'pen.2'Wheel Spots / Odds'def''
  589.    call sac70''pen.2'1-$1000, 1-$500, 1-$400, 1-$300, 1-$200, 1-$100, 1-$50'def''
  590.    say cr
  591.    say cr
  592.    call pressreturn
  593. return
  594.  
  595. vanna:
  596. say cls
  597. say CR
  598. say CR
  599. say CR
  600. say CR
  601. say CR                          
  602. say pen.2'                               \'pen.3' 0'pen.2' / '||CR
  603. say '                                \|/  '||CR
  604. say '                                 |   '||CR
  605. say '                                 |   '||CR
  606. say '                                / \  '||CR
  607. say '                               /   \ '||def||CR
  608. say CR      
  609. say pen.7'                      V A N N A    W H I T E '||def||CR 
  610. say pen.2'                          (TOTALLY  NUDE)'||def||CR
  611. say cr
  612. say cr
  613. say'                                                photo by 'pen.6'Charles Johnston'def''cr
  614. say cr
  615. say cr
  616. CALL DELAY(200)
  617. say cls
  618. say CR
  619. say CR
  620. say pen.2'  Now that you''ve caught your breath we can return to the game!'||def||CR
  621. CALL DELAY(200)
  622. return
  623.  
  624.  
  625. GETSEL:
  626.   if nolet = 1 then do
  627.    sel = 'G'
  628.    say''vowmess'                                  '
  629.    return
  630.    end
  631.   Options prompt ' 'pprompt'Enter your selection, 'player' > '
  632.   pull SEL
  633.   SEL = Upper(SEL)
  634.   if allvow = YES & SEL = S then do
  635.    say ''pprompt''pen.3' Spinning is not a valid option since only vowels remain!!'def''
  636.    call delay(100)
  637.    call clrl pprompt
  638.    call clrl mess1
  639.    call clrl mess2
  640.    call getsel
  641.    end
  642.   call clrl pprompt
  643.   call clrl mess1
  644.   call clrl mess2
  645. return
  646.  
  647. BONUS:
  648.   bon = 1
  649.   say cr
  650.   say cr
  651.   say'              You will now move on to the 'pen.3'BONUS'def' round!'cr
  652.   say cr
  653.   say cr
  654.   call delay(200)
  655.   say cls
  656.                    /* Spin the bonus wheel for multiplier
  657.                       between 10 & 20 */
  658.   say cr
  659.   say cr
  660.   options prompt' Hit 'pen.3'Return'def' to generate your 'pen.5'Bonus Wheel Multiplier!!!'def' '
  661.   pull hit
  662.   say cr
  663.   say cr
  664.   thebonus = random(10,20,time('s'))
  665.   thisspot ='35H'
  666.   thisnum = 9
  667.   do 20
  668.    if thisnum = 20 then thisnum = 10
  669.    thisnum = thisnum + 1
  670.    say''thisspot''thisnum''
  671.    say''thisspot'X '
  672.    end
  673.   say''thisspot''thebonus'  'cr
  674.   say cr
  675.   say cr
  676.   say cr
  677.   say' Your 'pen.5'Bonus Wheel Multiplier is 'pen.6''thebonus''def' !!'cr
  678.   call delay(100)
  679.   call generate
  680.  
  681.        bmoney = random(1,7,time('s'))
  682.         if bmoney = 1 then bmoney = 1000
  683.         if bmoney = 2 then bmoney = 500
  684.         if bmoney = 3 then bmoney = 400
  685.         if bmoney = 4 then bmoney = 300
  686.         if bmoney = 5 then bmoney = 200
  687.         if bmoney = 6 then bmoney = 100
  688.         if bmoney = 7 then bmoney = 50
  689.  
  690.  
  691. pos.1 ='32H' ; pos.2 ='35H' ; pos.3 ='39H' ; pos.4 ='40H'
  692. pos.5 ='41H' ; pos.6 ='42H' ; pos.7 ='41H' ; pos.8 ='40H'
  693. pos.9 ='39H' ; pos.10 ='35H' ; pos.11 ='32H' ; pos.12 ='30H'
  694. pos.13 ='29H' ; pos.14 ='28H' ; pos.15 ='29H' ; pos.16 ='30H'
  695. pprompt ='3H'
  696. pcash='34H'
  697. c.1 ='100' ; c.2='200' ; c.3 ='300'; c.4='400'; c.5='500' ; c.6='50'
  698. pamount='6H'
  699. pboncur='16H'
  700. pcons='2H'
  701. pvow='2H'
  702.  
  703.   say cls
  704.  
  705.    SAY pen.7'        +++++++++++++++++++++++++++++++++++++++++++++++++++++'def||CR
  706.    SAY pen.7'        +'pen.6' --------------- !! Bonus Round !! --------------- 'pen.7'+'def||cr
  707.    SAY pen.7'        +++++++++++++++++++++++++++++++++++++++++++++++++++++'def||CR
  708.    say cr
  709. say cr
  710. say cr
  711. say cr
  712. say ''cr
  713. SAY ' Bonus Puzzle: 'pen.3''Boncur''def''cr
  714. SAY ' Clue: 'pen.7''Bonclue''def''cr
  715. SAY cr
  716. say'                               'pen.2'50 'pen.3'200 'pen.4'50'def''cr
  717. say'                             'pen.5'100       'pen.6'400'def''cr
  718. say'                            'pen.7'400         'pen.2'300'def''cr
  719. say'                           'pen.3'500           'pen.4'100'def''cr
  720. say'                            'pen.5'300         'pen.6'200'def''cr
  721. say'                             'pen.7'100       'pen.2'300'def''cr
  722. say'                               'pen.3'50 'pen.4'500 'pen.5'50'def''cr
  723. say cr
  724. say cr
  725. options prompt''pprompt' 'pen.7'Hit 'pen.3'Return 'pen.7'to Spin the wheel !!!'def' '
  726. pull it
  727. call clrl pprompt
  728. call spinit
  729. say''pprompt' You spin for 'pen.6'$'bmoney''def' !'cr
  730. call delay(100)
  731. tbmoney = bmoney * thebonus /* total bonus money = spin money times multiplier */
  732. say'   'pen.6'$'bmoney' 'def'times your 'pen.3'BONUS Multiplier ('thebonus') 'def'= 'pen.5'$'tbmoney''def' !!'
  733. call delay(200)
  734. call clrl pprompt
  735. say'                                                                          '
  736. say''pamount' Playing for 'pen.5'$'tbmoney''def''
  737. call pullcons
  738. say''pcons'Consonants : 'pen.3''cons''def''
  739. call pullvow
  740. say''pvow'Vowel : 'pen.6''vow''def''
  741. call checkcons
  742. say''pprompt'                 'boncur''cr
  743. options prompt'Enter your guess > '
  744. pull bguess
  745. if upper(bguess) == upper(bonpuz) then do
  746.  BonusWins = BonusWins + 1
  747.  say cr
  748.  say'       'pen.3'Congratulations!!'def' You''re right! You just won $ 'pen.2''tbmoney' 'def'!!'cr
  749.  call delay(200)
  750.  thistot = moncur + tbmoney
  751.  say cr
  752.  say'            'pen.7'Your total winnings for this session = 'pen.3'$ 'thistot''def' !'cr
  753.  bwins = tbmoney
  754.  end
  755. else do
  756.  say cr
  757.  say'                   'pen.3'Wrong'def', better luck next time!'cr
  758.  bwins = '0'
  759.  say cr
  760.  say'                   The correct answer was 'pen.7''bonpuz''def''cr
  761.  call delay(200)
  762.  say cr
  763.  say'             But you did win 'pen.3'$ 'moncur''def' on the regular puzzle !'cr
  764.  end
  765.  
  766. return
  767.  
  768. say cr
  769.  
  770. checkcons:
  771.  say''pprompt' OK, let''s check for letters in the 'pen.3'BONUS'def' Puzzle!..'
  772.  call delay(100)
  773.  call clrl pprompt
  774.   do i = 1 to 6
  775.   if i = 6 then checklet = vow
  776.   else checklet = substr(cons,i,1)
  777.   if instring(checklet,bonpuz) then do
  778.    say''pprompt' There were 'CountIn(bonpuz,checklet)' 'pen.7''checklet' ''s 'def'in the BONUS Puzzle!'
  779.    call delay(100)
  780.    boncur = uncover(boncur,bonpuz,checklet)
  781.    say''pboncur''boncur''
  782.    end
  783.   else do
  784.    say''pprompt' There were 'pen.3'zero 'checklet' ''s 'def'in the BONUS puzzle..'
  785.    call delay(100)
  786.    call clrl pprompt
  787.    end
  788.   end
  789.  call clrl pprompt
  790.  return
  791.  
  792. pullvow:
  793.  options prompt''pprompt' Enter one vowel > '
  794.  pull vow
  795.  vow = space(vow)
  796.  vow = upper(vow)
  797.  call clrl pprompt
  798.  if length(vow) ~= 1 | ~datatype(vow,'U') | ~instring(vow,vowels) then do
  799.   say''pprompt' You can only enter 1 Vowel, try again..'
  800.   call delay(300)
  801.   call clrl pprompt
  802.   call pullvow
  803.   end
  804. return
  805.  
  806. pullcons:
  807.  options prompt''pprompt' Enter five consonants > '
  808.  pull cons
  809.  cons = strip(cons)
  810.  cons = space(cons)
  811.  cons = upper(cons)
  812.  call clrl pprompt
  813.  testlet = compress(cons,const)
  814.  if length(testlet) ~= 0 then ill = 1
  815.  if length(cons) ~= 5 | ~datatype(cons,'U') | ill = 1 then do
  816.   say''pprompt' You MUST enter 5 consanants only, no vowels or numbers...'
  817.   call delay(300)
  818.   call clrl pprompt
  819.   ill = 0
  820.   call pullcons
  821.   end
  822. return
  823.  
  824.   generate:
  825.   file = bbspath'wof.puzzles'
  826.   call open(puzzles,file,'R')
  827.   say ''cr
  828.   if bon = 1 then say' 'pen.7'Generating the Bonus Puzzle...'def''cr
  829.   else say' 'pen.7'Generating a new puzzle, please stand by...'def''cr
  830.   do for autopuznum
  831.    ln = readln(puzzles)
  832.    if EOF(puzzles) then do
  833.     call close(puzzles)
  834.     autopuznum = 1
  835.     call generate
  836.     end
  837.    end
  838.   puzline = readln(puzzles)
  839.   parse var puzline puzzle'|'clue
  840.   puzzle = strip(puzzle)
  841.   puzzle = upper(puzzle)
  842.   letleft = puzzle
  843.   clue = strip(clue)
  844.   clue = upper(clue)
  845.   call close(puzzles)
  846.   say ''cr
  847.   current = cover(puzzle)
  848.   puznum = puznum + 1
  849.   author = 'THE_BBS'
  850.   autopuznum = autopuznum + 1
  851.   if bon = 1 then do
  852.    boncur = current
  853.    bonpuz = puzzle
  854.    bonclue = clue
  855.    bon = ''
  856.    return
  857.    end
  858.   call quit puznum,current,puzzle,'',clue,author,autopuznum,player,letleft
  859.   call quit2 player,puzwon,monwon,puzcur,moncur,tplayed,BonusWins
  860.   call quit3 player,tplayed,puzwon,monwon,monsig,BonusWins
  861.   say ''pen.6'Thank you, a new puzzle will be waiting for the next player!'def''cr
  862.   say ''pen.6'Give it a try on your next call!'def''cr
  863.   call CloseShop
  864.   exit
  865.  
  866.  
  867. LTURN:
  868.   call spinit
  869.   call clrl mess1
  870.   say''mess1''pen.3'                        LOSE TURN!'
  871.   call delay(40)
  872.  if nfs > 0 then do
  873.   say''mess2''pen.2'      You have a Free Spin, so it''s still your turn!'
  874.   nfs = nfs -1
  875.   call play2
  876.   end
  877.  else do
  878.      say''mess2'           OOPS! Well, you can try again next call.'
  879.      call delay(100)
  880.      say cls
  881.      say cr
  882.      say cr
  883.      say''pen.2'  Returning to the BBS...'def''
  884.        call quit puznum,current,puzzle,guessed,clue,author,autopuznum,player,letleft
  885.        call quit2 player,puzwon,monwon,puzcur,moncur,tplayed,BonusWins
  886.        call quit3 player,tplayed,puzwon,monwon,monsig,BonusWins
  887.        call CloseShop
  888.        exit
  889.    end
  890. Return
  891.  
  892. FREESPIN:
  893.  call spinit
  894.  call clrl mess1
  895.  say''mess1'            Congratulations, you win a 'pen.5' FREE SPIN'def''
  896.  say ''cr
  897.  nfs = nfs + 1
  898.  call PLAY2
  899. return
  900.  
  901. BANKRPT:
  902.  call spinit
  903.  call delay(50)
  904.  call clrl mess1
  905.  say''mess1'                      You have hit 'pen.3'Bankrupt!'def''
  906.  call delay(100)
  907.  say cls
  908.  say cr
  909.  say cr
  910.  do for 3
  911.   call sac70'BANKRUPT'
  912.   say''cr
  913.   call delay(40)
  914.  end
  915.  if nfs > 0 then do
  916.   say''mess2'             You have a Free Spin, so it''s still your turn!'
  917.   say ''cr
  918.   nfs = nfs -1
  919.   moncur = 0
  920.   call play2
  921.   end
  922.  else do
  923.   call sac70' Sorry, try again next call!'
  924.   say ''cr
  925.   moncur = 0
  926.        call quit puznum,current,puzzle,guessed,clue,author,autopuznum,player,letleft
  927.        call quit2 player,puzwon,monwon,puzcur,moncur,tplayed,BonusWins
  928.        call quit3 player,tplayed,puzwon,monwon,monsig,BonusWins
  929.        call CloseShop
  930.        exit
  931.    end
  932. Return
  933.  
  934.  
  935. CHKVOWEL:
  936.    LETLEFT = SPACE(LETLEFT,0)
  937.    LETTEST = TRANSLATE(LETLEFT,               ,AEIOU1234567890)
  938.    LETTEST = SPACE(LETTEST,0)
  939.  
  940.    IF LENGTH(LETTEST) = 0 THEN ALLVOW = YES
  941.    ELSE ALLVOW = NO
  942.    if length(letleft) = 0 then nolet = 1
  943.    else nolet = 0
  944.  
  945. RETURN
  946.  
  947. Quit: procedure expose bbspath
  948. arg puznum,current,puzzle,guessed,clue,author,autopuznum,player,letleft
  949.    call open('output',bbspath'WoF.dat','W')
  950.    call writeln('output',puznum)
  951.    call writeln('output',current)
  952.    call writeln('output',puzzle)
  953.    call writeln('output',guessed)
  954.    call writeln('output',clue)
  955.    call writeln('output',author autopuznum)
  956.    call writeln('output',player)
  957.    call writeln('output',letleft)
  958.    call close('output')
  959. return
  960.  
  961. quit2:
  962. arg name,puzwon,monwon,puzcur,moncur,tplayed,BonusWins
  963.  
  964.   if tplayed >0 then do
  965.    tplayed = tplayed + 1
  966.    end
  967.   else tplayed = 1
  968.  
  969.   if puzwon > 0 then do
  970.    tpct = (puzwon / tplayed) * 100
  971.    pct = substr(tpct,1,5)
  972.    pct = SPACE(pct,0)
  973.    end
  974.   else pct = 0
  975.   if BonusWins = '' then BonusWins = 0
  976.  
  977.    call open('output','RAM:wof.player.data','A')
  978.    call writeln('output',name'|'puzwon'|'monwon'|'puzcur'|'moncur'|'tplayed'|'pct'|'BonusWins)
  979.    call close('output')
  980.    address command 'c:copy ram:wof.player.data' bbspath'WoF.players'
  981.    call delay(50)
  982.    call delete('ram:wof.player.data')
  983. return
  984.  
  985. quit3:
  986. arg player,tplayed,puzwon,monwon,monsig,BonusWins
  987.    call open(statfile,bbspath'WoF.stat','R')
  988.    mostplays = readln(statfile) /* MOST TIMES PLAYED */
  989.    mostwins = readln(statfile) /* MOST PUZZLES WON */
  990.    mostmon = readln(statfile)  /* MOST $ WON TOTAL */
  991.    mostsigl = readln(statfile) /* MOST $ WON IN A SINGLE GAME */
  992.    mostBonusWins = readln(statfile)
  993.    if mostBonusWins = '' then mostBonusWins = 'MATT_ENGLISH|1'
  994.   call close(statfile)
  995.  
  996.        parse var mostplays name1'|'stat1
  997.        parse var mostwins name2'|'stat2
  998.        parse var mostmon name3'|'stat3
  999.        parse var mostsigl name4'|'stat4
  1000.        parse var mostBonusWins name5'|'stat5
  1001.  
  1002.    if tplayed > stat1 then do
  1003.     stat1 = tplayed
  1004.     name1 = player
  1005.     say ''cr
  1006.     say pen.3'Congratulations! You have played more than anyone!'def||cr
  1007.     say ''cr
  1008.     end
  1009.  
  1010.    if puzwon > stat2 then do
  1011.     stat2 = puzwon
  1012.     name2 = player
  1013.     say ''cr
  1014.     say pen.3'ALRIGHT! You have won the most puzzles!'def||cr
  1015.     say ''cr
  1016.     end
  1017.  
  1018.    if monwon > stat3 then do
  1019.     stat3 = monwon
  1020.     name3 = player
  1021.     say ''cr
  1022.     say pen.3'You are the biggest money winner of all the players!'def||cr
  1023.     say ''cr
  1024.     end
  1025.  
  1026.    if monsig > stat4 then do
  1027.     stat4 = monsig
  1028.     name4 = player
  1029.     say ''cr
  1030.     say pen.3'WOW, that game earned you the most money ever won in a single game!'def||cr
  1031.     say ''cr
  1032.     end
  1033.  
  1034.    if BonusWins > stat5 then do
  1035.     stat5 = BonusWins
  1036.     name5 = player
  1037.     say cr
  1038.     say pen.7'Great! You have beat the BONUS round more times than anyone!!'def||cr
  1039.     say ''cr
  1040.     end
  1041.  
  1042.    call open('outstat',bbspath'WoF.stat','W')
  1043.    call writeln('outstat',name1'|'stat1)
  1044.    call writeln('outstat',name2'|'stat2)
  1045.    call writeln('outstat',name3'|'stat3)
  1046.    call writeln('outstat',name4'|'stat4)
  1047.    call writeln('outstat',name5'|'stat5)
  1048.  
  1049.    call close('outstat')
  1050.  
  1051. return
  1052.  
  1053. Uncover: procedure
  1054. arg current,puzzle,letter
  1055.    loop = 1
  1056.    pos = 1
  1057.    do while (pos ~== 0)
  1058.       pos = index(puzzle,letter,loop)
  1059.       if (pos == 1) then
  1060.           current = letter||right(current,(length(current)-pos))
  1061.       else nop
  1062.       if (pos == length(current)) then
  1063.           current = left(current,(pos-1))||letter
  1064.       else if (pos ~== 0) then
  1065.            current = left(current,(pos-1))||letter||right(current,(length(puzzle)-pos))
  1066.       loop = pos+1
  1067.    end
  1068. return(current)
  1069.  
  1070. CountIn: procedure
  1071. arg puzzle,letter
  1072.    points = 0
  1073.    pos = 1
  1074.    oldpos = 1
  1075.    do while (pos ~== 0)
  1076.       pos = index(puzzle,letter,oldpos)
  1077.       if (pos ~==0) then do
  1078.          points = points + 1
  1079.          oldpos = pos + 1
  1080.       end
  1081.    end
  1082. return(points)
  1083.  
  1084. cover: procedure
  1085. arg oldstring
  1086. newstring = ''
  1087.   do loop = 1 to (length(oldstring))
  1088.      if (instring(left(oldstring,1),'ABCDEFGHIJKLMNOPQRSTUVWXYZ')) then
  1089.         newstring = newstring||"+"
  1090.      else newstring = newstring||left(oldstring,1)
  1091.      oldstring = right(oldstring,(length(oldstring)-1))
  1092.   end
  1093. return(newstring)
  1094.  
  1095. instring: procedure
  1096. arg letter,string
  1097.  if (index(string,letter) == 0) then return 0
  1098.   else return 1
  1099.  
  1100. winner: procedure expose bbspath 
  1101. arg player,puzzle
  1102.  call open('outfile',bbspath'WoF.winners','R')
  1103.  line0 = readln('outfile')
  1104.  line1 = readln('outfile')
  1105.  line2 = readln('outfile')
  1106.  line3 = readln('outfile')
  1107.  line4 = readln('outfile')
  1108.  line5 = readln('outfile')
  1109.  line6 = readln('outfile')
  1110.  line7 = readln('outfile')
  1111.  line8 = readln('outfile')
  1112.  line9 = readln('outfile')
  1113.  call close('outfile')
  1114.  call open('outfile',bbspath'WoF.winners','W')
  1115.  today = date()
  1116.  when = time('C')
  1117.  news = puzzle' solved by 'player' on 'today' at 'when'.'
  1118.  call writeln('outfile',line1)
  1119.  call writeln('outfile',line2)
  1120.  call writeln('outfile',line3)
  1121.  call writeln('outfile',line4)
  1122.  call writeln('outfile',line5)
  1123.  call writeln('outfile',line6)
  1124.  call writeln('outfile',line7)
  1125.  call writeln('outfile',line8)
  1126.  call writeln('outfile',line9)
  1127.  call writeln('outfile',news)
  1128.  call close('outfile') 
  1129. return
  1130.  
  1131. /********************* Error Checking *************************************/
  1132.  
  1133. SYNTAX:
  1134.    SAY '*BOOM*  Got a syntax error.  PLEASE notify the sysop.'
  1135.    SAY 'Line:' SIGL '   Error Code:' RC
  1136.    call CloseShop
  1137. exit
  1138.  
  1139. /*************************************************************************/
  1140.  
  1141. spinit:
  1142. if bmoney = '' then do
  1143.  if money = 1 | money = 26 then money = ''pen.2' FREE'def''
  1144.  if money > 1 & money < 4 then money = ''pen.3'BRUPT'def''
  1145.  if money = 4 then money = ''pen.3' LOSE'def''
  1146.  end
  1147. call clcash
  1148. w = '0'
  1149. j = '1'
  1150. do 3
  1151.  do i = 1 to 16
  1152.   w = w+1
  1153.   j = j + 1
  1154.   if j > 7 then j = 2
  1155.   if w > 5 then w = 1
  1156.   if i = 1 | i = 3 | i = 9 | i = 11 then x = 6
  1157.   else x = w
  1158.   say''pos.i'  '
  1159.   say''pos.i''pen.j''c.x''def''
  1160.   end
  1161.  end
  1162. say''pcash'$500'
  1163. call clcash
  1164. say''pcash'$200'
  1165. call delay(5)
  1166. call clcash
  1167. say''pcash'$400'
  1168. call delay(10)
  1169. call clcash
  1170. say''pcash'$100'
  1171. call delay(20)
  1172. call clcash
  1173. if bmoney = '' then do
  1174.  if datatype(money,'W') then say''pcash'$'money''
  1175.  else say''pcash''money''
  1176.  end
  1177. else do
  1178.  if datatype(bmoney,'W') then say''pcash'$'bmoney''
  1179.  else say''pcash''bmoney''
  1180.  end
  1181. return
  1182.  
  1183. CloseShop:
  1184.    if NoCarrier() then call DieGracefully
  1185.    Options prompt 'Press RETURN:'
  1186.    exit
  1187. return
  1188.  
  1189. DieGracefully: procedure
  1190.    'exit'
  1191.    exit
  1192. return
  1193.  
  1194. NoPuzzle
  1195.   call open('infile',bbspath'wof.dat','W')
  1196.   call writeln('infile','0')
  1197.   call close('infile')
  1198. return
  1199.  
  1200. HOTKEY:
  1201. PULL gss
  1202. if length(gss)>1 then signal HOTKEY:
  1203. return
  1204.  
  1205. HOTSTAT:
  1206. PULL answer
  1207. if answer = '' then answer = Y
  1208. if length(answer)>1 then signal HOTSTAT:
  1209. return
  1210.  
  1211. HOTKEYSEL:
  1212. PULL SEL
  1213. if length(SEL)>1 then signal HOTKEYSEL:
  1214. return
  1215.  
  1216. HOTKEYSOLV:
  1217. PULL SOLV
  1218. return
  1219.  
  1220. hotpuz:
  1221. pull puzzle
  1222. puzzle = strip(puzzle)
  1223. if puzzle = '' then do
  1224.   say ''pen.3'Hey cmon'def 'and enter a new puzzle!'cr
  1225.   Otions prompt'Puzzle > '
  1226.   call hotpuz
  1227.   end
  1228. if length(puzzle) > 60 then do
  1229.   say ''cr
  1230.   say ' That puzzle''s a little too long. Can you think of a shorter one?'
  1231.   say ''cr
  1232.   options prompt'Puzzle (60 characters max) > '
  1233.   call hotpuz
  1234.   end
  1235.   say ''cr
  1236.   call sac70 'Puzzle: 'puzzle''
  1237.   say ''cr
  1238.   options prompt'Does this look OK? ('pen.5'Y'def','pen.3'n'def') > '
  1239.   pull ok
  1240.   say ''cr
  1241.    if ok = 'N' then do
  1242.     say ''cr
  1243.     say' 'pen.5'OK, lets try again.'def''cr
  1244.     say ''cr
  1245.     options prompt'Please enter your puzzle > '
  1246.     call hotpuz
  1247.     end
  1248. return
  1249.  
  1250. hotclue:
  1251. pull answer
  1252. if answer = '' then do
  1253.   say ''pen.6'It would help if you gave us a clue!'def||cr
  1254.   say ''cr
  1255.   options prompt'Clue > '
  1256.   say ''cr
  1257.   call hotclue
  1258.   end
  1259.   say ''cr
  1260.   call sac70'Clue:'answer''
  1261.   say ''cr
  1262.   options prompt'Does this clue look OK? ('pen.5'Y'def','pen.3'n'def') > '
  1263.   pull okcl
  1264.   say ''cr
  1265.    if okcl = 'N' then do
  1266.     say ''cr
  1267.     say' OK, lets try the clue again.'cr
  1268.     say ''cr
  1269.     options prompt'Please enter your clue > '
  1270.     call hotclue
  1271.     end
  1272. return
  1273.  
  1274. SAC70:  /* SAY CENTER TEXT*/
  1275. PARSE ARG string
  1276. SAY CENTER(string,75)||CR
  1277. RETURN;
  1278.  
  1279. SAC:  /* SAY CENTER TEXT*/
  1280. PARSE ARG string
  1281. SAY CENTER(string,50)||CR
  1282. RETURN;
  1283.  
  1284. VATIME:
  1285.        parse var mostplays name1'|'stat1
  1286.        parse var mostwins name2'|'stat2
  1287.        parse var mostmon name3'|'stat3
  1288.        parse var mostsigl name4'|'stat4
  1289.        parse var mostBonusWins name5'|'stat5
  1290.  
  1291.     say ''cr
  1292.     say ''cr
  1293.     say '      'pen.2''name1''def' has played the most! 'pen.2''stat1''def' times!'cr
  1294.     say '      'pen.3''name2''def' has won the most games! 'pen.3''stat2''def' wins!'cr
  1295.     say '      'pen.4''name3''def' has earned the most money! $'pen.4''stat3''def' bucks!'cr
  1296.     say '      'pen.5''name4''def' has won the most money in a single game! $'pen.5''stat4''def' bucks!'cr
  1297.     say '      'pen.6''name5''def' has solved the most BONUS ROUND puzzles!!  'pen.6''stat5''def''cr
  1298.  
  1299.     say ''cr
  1300.     call pressreturn
  1301. return
  1302.  
  1303. clrl:
  1304.  arg where
  1305.  call writech('STDOUT',''where'                                                              ')
  1306.  return
  1307.  
  1308. clcash:
  1309.  call writech('STDOUT',''pcash'      ')
  1310.  return
  1311.  
  1312.  
  1313. VPSTATS:
  1314.     say ''cr
  1315.     call sac70'     You have won 'pen.2''puzwon''def' times.'
  1316.     call sac70'     You have solved the 'pen.6'BONUS ROUND puzzle 'BonusWins''def' times!'
  1317.     call sac70'     You have won $'pen.3''monwon''def' bucks total.'
  1318.     call sac70'     The last puzzle you played was puzzle number 'pen.4''puzcur''def'.'
  1319.     call sac70'     You have Played The Wheel of Fortune 'pen.5''tplayed''def' times.'
  1320.     call sac70'     You solve the puzzle 'pen.6''pct''def' % of the time!'
  1321.     say ''cr
  1322.     call pressreturn
  1323. return
  1324.  
  1325. VASTATS:
  1326. stop = ''
  1327.     call open('allstat',bbspath'WoF.players','R')
  1328.      do until eof('allstat')
  1329. say cls
  1330. if stop = 1 then break
  1331. say'    Player      'pen.2'Puzzles  'pen.3'Money   'pen.4'Current   'pen.5'Current  'pen.6'Times    'pen.7'Winning'def'   Bonus'cr
  1332. say'     name         'pen.2'won     'pen.3'won    'pen.4'Puzzle #   'pen.5'Cash    'pen.6'Played      'pen.7'%'def'      wins'cr
  1333. say'--------------------------------------------------------------------------------------'cr
  1334. say ''cr
  1335.         do for 16
  1336.         line1 = readln('allstat')
  1337.         parse var line1 namea'|'num1a'|'num2a'|'num3a'|'num4a'|'num5a'|'num6a'|'num7a
  1338.         namea = left(namea,16);num1a = center(num1a,7);num2a = center(num2a,7)
  1339.         num3a = center(num3a,9);num4a = center(num4a,9);num5a = center(num5a,7)
  1340.         num6a = center(num6a,6);sign = '%';signa = '$'
  1341.         if num7a = '' then num7a = 0
  1342.         if num6a = '' then num7a = ''
  1343.         num7a = left(num7a,5)
  1344.         if num6a = '' then do
  1345.           sign = ''
  1346.           signa = ''
  1347.           end
  1348.         say''namea''pen.2''num1a''pen.3''signa''num2a'  'pen.4''num3a''pen.5''signa''num4a''pen.6''num5a'  'pen.7''num6a' 'sign''def'    'num7a''cr
  1349.         end
  1350.        say ''cr
  1351.       call qreturn
  1352.       end
  1353.       call close('allstat')
  1354. return
  1355.  
  1356. VL5PUZ:
  1357.   call open(puzfile,bbspath'WoF.winners','R')
  1358.    laspuz0 = readln(puzfile)
  1359.    laspuz1 = readln(puzfile)
  1360.    laspuz2 = readln(puzfile)
  1361.    laspuz3 = readln(puzfile)
  1362.    laspuz4 = readln(puzfile)
  1363.    laspuz5 = readln(puzfile)
  1364.    laspuz6 = readln(puzfile)
  1365.    laspuz7 = readln(puzfile)
  1366.    laspuz8 = readln(puzfile)
  1367.    laspuz9 = readln(puzfile)
  1368.   call close(puzfile)
  1369.   say''cls''
  1370.   say cr
  1371.   call sac70'The last ten puzzles were:'
  1372.   say ''cr
  1373.   say ''cr
  1374.   say''laspuz0''cr
  1375.   say''laspuz1''cr
  1376.   say''laspuz2''cr
  1377.   say''laspuz3''cr
  1378.   say''laspuz4''cr
  1379.   say''laspuz5''cr
  1380.   say''laspuz6''cr
  1381.   say''laspuz7''cr
  1382.   say''laspuz8''cr
  1383.   say''laspuz9''cr
  1384.   say ''cr
  1385.   say ''cr
  1386.   call pressreturn
  1387. return
  1388.  
  1389.  
  1390. pressreturn:
  1391. options prompt'   'pen.5' Press 'pen.3'[Return]'pen.5' to continue'def''
  1392. pull response
  1393. return
  1394.  
  1395. qreturn:
  1396. stop = ''
  1397. options prompt'   'pen.5' Press 'pen.3'[Return]'pen.5' to continue or 'pen.3'"S"'pen.5' to Stop'def' '
  1398. pull response
  1399. if response = "S" then stop = 1
  1400.  
  1401. return
  1402.  
  1403. NoCarrier:
  1404. IF ADDRESS()~='BAUD' THEN RETURN 0
  1405. dcd
  1406. IF RC=0 THEN RETURN 1
  1407. temp2=TIME('E')
  1408. IF temp2>secs THEN RETURN 1
  1409. temp=secs-temp2
  1410. IF temp<120 THEN SAY '*** Only' temp 'seconds left! ***'CR 
  1411. RETURN 0
  1412.  
  1413.  
  1414. RETURN 0
  1415.  
  1416. inst:
  1417. say cls
  1418. say cr
  1419. say cr
  1420. say'  This plays just like the TV show... If you miss, it''s the next players'cr
  1421. say'  turn. Only thing is you have to wait till the next caller calls and takes'cr
  1422. say'  a turn! If you guess the puzzle, you will be prompted to leave the next'cr
  1423. say'  puzzle! 'pen.4'Vowels cost $250. 'pen.5'Even if there''s 5 A''s, it''s still $250.'def''cr
  1424. say cr
  1425. say'              Have fun... Play everytime you call!!!!'cr
  1426. say cr
  1427. say'                    'pen.4'Get to the 'pen.3'BONUS 'pen.4'round!'def''cr
  1428. say cr
  1429. say'             'pen.5'Try to get to the top of the stats list!'def||cr
  1430. say''cr
  1431. call pressreturn
  1432. return
  1433.  
  1434.  
  1435. BREAK_C:
  1436. BREAK_E:
  1437. CALL CLOSE(f)
  1438. EXIT;                           /* a little redundant, so sue me! */
  1439.  
  1440. /**************************************************************************/