home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / ONEARM13.ZIP / ONE.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-02-22  |  16KB  |  672 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Integer  INTEGER001
  26.     Integer  INTEGER002
  27.     Integer  INTEGER003
  28.     Integer  INTEGER004
  29.     Integer  INTEGER005
  30.     Integer  INTEGER006
  31.     Integer  INTEGER007
  32.     Integer  INTEGER008
  33.     Integer  INTEGER009
  34.     Integer  INTEGER010
  35.     Integer  INTEGER011
  36.     Integer  INTEGER012
  37.     Integer  INTEGER013
  38.     Integer  INTEGER014
  39.     String   STRING001
  40.     String   STRING002
  41.     String   STRING003
  42.     String   STRING004
  43.     String   STRING005
  44.     String   STRING006
  45.     String   STRING007
  46.     String   STRING008
  47.     String   STRING009
  48.     String   TSTRING010(51,3)
  49.     String   TSTRING011(51,3)
  50.     String   TSTRING012(6)
  51.  
  52. ;------------------------------------------------------------------------------
  53.  
  54.     STRING002 = "Registered To: "
  55.     STRING003 = "UNREGISTERED VERSION"
  56.     BOOLEAN003 = 0
  57.     STRING001 = STRING002 + STRING003
  58.     STRING004 = "Version 1.3"
  59.     INTEGER013 = 0
  60.     INTEGER011 = 1
  61.     BOOLEAN005 = 0
  62.     TSTRING012(1) = "@X0CCHERRY "
  63.     TSTRING012(2) = "@X0E LEMON "
  64.     TSTRING012(3) = "@X0D PLUM  "
  65.     TSTRING012(4) = "@X0A GRAPE "
  66.     TSTRING012(5) = "@X0F $$$$$ "
  67.     TSTRING012(6) = "@X09 ----- "
  68.     Log "Entered ONE.PPE at " + Left(Time(), 5), 0
  69.     Cls
  70.     GetUser
  71.     STRING005 = Left(U_Name(), InStr(U_Name(), " ") - 1)
  72.     STRING005 = Mixed(STRING005)
  73.     If (AnsiOn()) Goto LABEL001
  74.     PrintLn 
  75.     PrintLn "Sorry ", STRING005, ", but this game requires ANSI capability."
  76.     Log "User does not have ANSI capability.", 0
  77.     PrintLn 
  78.     Goto LABEL017
  79.     :LABEL001
  80.     If (BOOLEAN003) Goto LABEL002
  81.     INTEGER003 = 10
  82.     INTEGER012 = 25
  83.     PrintLn 
  84.     PrintLn Space(17) + "@X0F One Armed Bandit - (C) 1993 Gerry Schechter"
  85.     PrintLn 
  86.     PrintLn Space((80 - Len(STRING004)) / 2) + STRING004
  87.     PrintLn 
  88.     Delay 30
  89.     PrintLn Space((80 - Len(STRING001)) / 2) + "@X0E" + STRING001
  90.     PrintLn 
  91.     Delay 30
  92.     PrintLn Space(15) + "@X0F Please ask your Sysop to register this program!"
  93.     PrintLn 
  94.     Delay 30
  95.     Goto LABEL003
  96.     :LABEL002
  97.     INTEGER003 = 50
  98.     PrintLn 
  99.     PrintLn Space(17), "@X0F One Armed Bandit - (C) 1993 Gerry Schechter"
  100.     PrintLn 
  101.     PrintLn Space((80 - Len(STRING004)) / 2), STRING004
  102.     PrintLn 
  103.     PrintLn Space((80 - Len(STRING001)) / 2), "@X0E", STRING001
  104.     PrintLn 
  105.     GetToken INTEGER009
  106.     If (INTEGER009 == 0) Then
  107.         INTEGER012 = 50
  108.     Else
  109.         INTEGER012 = INTEGER009
  110.     Endif
  111.     :LABEL003
  112.     If (BOOLEAN003) Goto LABEL004
  113.     If ((Left(STRING003, 1) <> "U") || (Right(STRING003, 1) <> "N")) Goto LABEL005
  114.     :LABEL004
  115.     If (BOOLEAN003) Then
  116.         If (Left(ReadLine(PCBDat(), 94), 10) <> Left(STRING003, 10)) Then
  117.             :LABEL005
  118.             PrintLn "@X0C"
  119.             PrintLn Space(14) + "Your Sysop is using a pirated copy of this program!"
  120.             PrintLn "@BEEP@"
  121.             PrintLn Space(12) + "This is dishonest and unethical, not to mention illegal!"
  122.             PrintLn 
  123.             Log "--> Using Pirated Software Is Illegal!!", 0
  124.             Delay 35
  125.             Print Space(26)
  126.             Wait
  127.         Else
  128.             If (Exist(PPEPath() + "ONE.DAT")) Goto LABEL006
  129.             FCreate 1, PPEPath() + "ONE.DAT", 1, 3
  130.             INTEGER009 = 0
  131.             For INTEGER001 = 1 To 51
  132.                 TSTRING010(INTEGER001, 1) = "NotUsed"
  133.                 TSTRING010(INTEGER001, 2) = "01/01/90"
  134.                 TSTRING010(INTEGER001, 3) = INTEGER009
  135.                 FPutLn 1, TSTRING010(INTEGER001, 1)
  136.                 FPutLn 1, TSTRING010(INTEGER001, 2)
  137.                 FPutLn 1, TSTRING010(INTEGER001, 3)
  138.                 TSTRING011(INTEGER001, 1) = "NotUsed"
  139.                 TSTRING011(INTEGER001, 2) = "01/01/90"
  140.                 TSTRING011(INTEGER001, 3) = INTEGER009
  141.             Next
  142.             FClose 1
  143.             :LABEL006
  144.             BOOLEAN001 = 0
  145.             BOOLEAN002 = 1
  146.             FOpen 1, PPEPath() + "ONE.DAT", 0, 0
  147.             For INTEGER001 = 1 To 50
  148.                 FGet 1, TSTRING010(INTEGER001, 1)
  149.                 If (U_Name() == TSTRING010(INTEGER001, 1)) Then
  150.                     BOOLEAN001 = 1
  151.                     INTEGER002 = INTEGER001
  152.                 Endif
  153.                 If ((!BOOLEAN001 && BOOLEAN002) && (TSTRING010(INTEGER001, 1) == "NotUsed")) Then
  154.                     BOOLEAN002 = 0
  155.                     INTEGER002 = INTEGER001
  156.                 Endif
  157.                 FGet 1, TSTRING010(INTEGER001, 2)
  158.                 FGet 1, TSTRING010(INTEGER001, 3)
  159.                 If (TSTRING010(INTEGER001, 3) > INTEGER013) Then
  160.                     INTEGER014 = INTEGER001
  161.                     INTEGER013 = TSTRING010(INTEGER001, 3)
  162.                 Endif
  163.             Next
  164.             FGet 1, TSTRING010(INTEGER001, 1)
  165.             FGet 1, TSTRING010(INTEGER001, 2)
  166.             FGet 1, TSTRING010(INTEGER001, 3)
  167.             FClose 1
  168.             If (INTEGER002 > INTEGER003) Then
  169.                 PrintLn "@X0C"
  170.                 STRING006 = "Sorry " + STRING005 + ", maximum allowed users reached."
  171.                 PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  172.                 PrintLn 
  173.                 If (BOOLEAN003) Goto LABEL007
  174.                 Delay 30
  175.                 STRING006 = "Your Sysop must register this program in order for you to play."
  176.                 PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  177.                 Delay 30
  178.                 Goto LABEL008
  179.                 :LABEL007
  180.                 STRING006 = "Please notify your sysop!"
  181.                 PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  182.                 :LABEL008
  183.                 PrintLn 
  184.                 Print Space(26)
  185.                 Wait
  186.             Else
  187.                 If (BOOLEAN001) Then
  188.                     PrintLn "@X0A"
  189.                     PrintLn Space((66 - Len(STRING005)) / 2) + "Welcome Back " + STRING005
  190.                     PrintLn 
  191.                     Print Space((57 - Len(TSTRING010(INTEGER002, 3))) / 2)
  192.                     PrintLn "Your current score is " + TSTRING010(INTEGER002, 3)
  193.                     INTEGER010 = TSTRING010(INTEGER002, 3)
  194.                     INTEGER007 = INTEGER010
  195.                 Else
  196.                     PrintLn "@X0A"
  197.                     PrintLn Space((72 - Len(STRING005)) / 2) + "Welcome " + STRING005
  198.                     PrintLn 
  199.                     PrintLn Space(26) + "I'll start you out with 100"
  200.                     TSTRING010(INTEGER002, 1) = U_Name()
  201.                     TSTRING010(INTEGER002, 2) = Date()
  202.                     INTEGER010 = 100
  203.                     INTEGER007 = INTEGER010
  204.                     TSTRING010(INTEGER002, 3) = INTEGER010
  205.                     INTEGER009 = 99
  206.                     FCreate 1, PPEPath() + "ONE.DAT", 1, 3
  207.                     For INTEGER001 = 1 To 51
  208.                         FPutLn 1, TSTRING010(INTEGER001, 1)
  209.                         FPutLn 1, TSTRING010(INTEGER001, 2)
  210.                         FPutLn 1, TSTRING010(INTEGER001, 3)
  211.                     Next
  212.                     FClose 1
  213.                 Endif
  214.                 PrintLn "@X0F"
  215.                 If (INTEGER013 <> 0) Then
  216.                     STRING006 = "The current high score is " + String(INTEGER013)
  217.                     STRING006 = STRING006 + " by " + Mixed(TSTRING010(INTEGER014, 1))
  218.                     PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  219.                     PrintLn 
  220.                 Endif
  221.                 STRING006 = "Y"
  222.                 Print Space(25)
  223.                 InputYN "Do you want sounds (Y/n)", STRING006, 11
  224.                 If (((STRING006 == "y") || (STRING006 == "Y")) || (STRING006 == "")) Then
  225.                     BOOLEAN006 = 1
  226.                 Else
  227.                     BOOLEAN006 = 0
  228.                 Endif
  229.                 If (INTEGER009 == 99) Goto LABEL009
  230.                 If (TSTRING010(INTEGER002, 2) == Left(Date(), 8)) Then
  231.                     PrintLn "@CLS@ @X0F"
  232.                     STRING006 = "Sorry " + STRING005 + ", you may only play once per day."
  233.                     PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  234.                     PrintLn 
  235.                     Print Space(26)
  236.                     Wait
  237.                 Else
  238.                     :LABEL009
  239.                     Cls
  240.                     Print "@X0B"
  241.                     STRING006 = "One Armed Bandit"
  242.                     PrintLn Space((76 - Len(STRING006)) / 2) + STRING006
  243.                     PrintLn 
  244.                     PrintLn 
  245.                     PrintLn "@POS:22@@X09╔════════════════════════════════╗   @X07"
  246.                     PrintLn "@POS:22@@X09║@X03░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒@X09║   ╥"
  247.                     PrintLn "@POS:22@║                                ║   ║"
  248.                     PrintLn "@POS:22@║  @X0B┌───────┐ ┌───────┐ ┌───────┐@X09 ║   ║"
  249.                     PrintLn "@POS:22@║  @X0B│       │ │       │ │       │@X09 ║   ║"
  250.                     PrintLn "@POS:22@║  @X0B│       │ │       │ │       │@X09 ╠═══╝"
  251.                     PrintLn "@POS:22@║  @X0B│       │ │       │ │       │@X09 ║"
  252.                     PrintLn "@POS:22@║  @X0B└───────┘ └───────┘ └───────┘@X09 ║"
  253.                     PrintLn "@POS:22@║                                ║"
  254.                     PrintLn "@POS:22@║@X03▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░@X09║"
  255.                     PrintLn "@POS:22@╚════════════════════════════════╝"
  256.                     PrintLn 
  257.                     Print "@POS:35@ @X0FBet = "
  258.                     PrintLn INTEGER011
  259.                     PrintLn 
  260.                     Print "@POS:33@ @X0FScore = "
  261.                     Print INTEGER010
  262.                     AnsiPos 34, 20
  263.                     Print "Turns = "
  264.                     Print INTEGER012
  265.                     AnsiPos 26, 9
  266.                     Print TSTRING012(5)
  267.                     AnsiPos 36, 9
  268.                     Print TSTRING012(5)
  269.                     AnsiPos 46, 9
  270.                     Print TSTRING012(5)
  271.                     :LABEL010
  272.                     AnsiPos 1, 23
  273.                     ClrEol
  274.                     Print "@X0F [@X0EP@X0F]lay  [@X0EC@X0F]hange Bet [@X0EQ@X0F]uit "
  275.                     Print "[@X0EH@X0F]elp [@X0ES@X0F]cores [@X0ER@X0F]edraw ?"
  276.                     :LABEL011
  277.                     INTEGER009 = Random(6)
  278.                     STRING006 = Inkey()
  279.                     If (MinLeft() < 2) Then
  280.                         PrintLn "@CLS@"
  281.                         BOOLEAN005 = 1
  282.                     Else
  283.                         If (STRING006 == "") Goto LABEL011
  284.                         If ((STRING006 == "q") || (STRING006 == "Q")) Then
  285.                             BOOLEAN005 = 1
  286.                             PrintLn "@CLS@"
  287.                         Else
  288.                             If ((STRING006 == "r") || (STRING006 == "R")) Then
  289.                                 SaveScrn
  290.                                 RestScrn
  291.                                 Goto LABEL011
  292.                             Endif
  293.                             If (((STRING006 == "p") || (STRING006 == "P")) || (STRING006 == Chr(32))) Then
  294.                                 INTEGER010 = INTEGER010 - INTEGER011
  295.                                 INTEGER008 = INTEGER010
  296.                                 For INTEGER001 = 1 To 3
  297.                                     INTEGER004 = Random(4) + 1
  298.                                     INTEGER005 = Random(5) + 1
  299.                                     INTEGER006 = Random(5) + 1
  300.                                     If (INTEGER001 == 3) Then
  301.                                         If (INTEGER010 < 90) INTEGER004 = 1
  302.                                         If (((INTEGER004 == 1) && (INTEGER005 <> 1)) && (Random(1) == 0)) INTEGER005 = 1
  303.                                         If ((((INTEGER004 == 1) && (INTEGER005 == 1)) && (INTEGER006 <> 1)) && (Random(1) == 0)) INTEGER006 = 1
  304.                                         If (((INTEGER004 == 2) && (INTEGER005 <> 2)) && (Random(1) == 0)) INTEGER005 = 2
  305.                                         If ((((INTEGER004 == 2) && (INTEGER005 == 2)) && (INTEGER006 <> 2)) && (Random(1) == 0)) INTEGER006 = 2
  306.                                         If (((INTEGER004 == 3) && (INTEGER005 <> 3)) && (Random(2) == 0)) INTEGER005 = 3
  307.                                         If ((((INTEGER004 == 3) && (INTEGER005 == 3)) && (INTEGER006 <> 3)) && (Random(2) == 0)) INTEGER006 = 3
  308.                                         If (((INTEGER004 == 4) && (INTEGER005 <> 4)) && (Random(3) == 0)) INTEGER005 = 4
  309.                                         If ((((INTEGER004 == 4) && (INTEGER005 == 4)) && (INTEGER006 <> 4)) && (Random(3) == 0)) INTEGER006 = 4
  310.                                     Endif
  311.                                     AnsiPos 26, 9
  312.                                     Print TSTRING012(INTEGER004)
  313.                                     AnsiPos 36, 9
  314.                                     Print TSTRING012(INTEGER005)
  315.                                     AnsiPos 46, 9
  316.                                     Print TSTRING012(INTEGER006)
  317.                                     Delay 1
  318.                                 Next
  319.                                 If ((INTEGER004 == 1) && (INTEGER005 <> 1)) INTEGER010 = INTEGER010 + INTEGER011 * 2
  320.                                 If (((INTEGER004 == 1) && (INTEGER005 == 1)) && (INTEGER006 <> 1)) INTEGER010 = INTEGER010 + INTEGER011 * 3
  321.                                 If (((INTEGER004 == 1) && (INTEGER005 == 1)) && (INTEGER006 == 1)) INTEGER010 = INTEGER010 + INTEGER011 * 4
  322.                                 If (((INTEGER004 == 2) && (INTEGER005 == 2)) && (INTEGER006 == 2)) INTEGER010 = INTEGER010 + INTEGER011 * 6
  323.                                 If (((INTEGER004 == 3) && (INTEGER005 == 3)) && (INTEGER006 == 3)) INTEGER010 = INTEGER010 + INTEGER011 * 7
  324.                                 If (((INTEGER004 == 4) && (INTEGER005 == 4)) && (INTEGER006 == 4)) INTEGER010 = INTEGER010 + INTEGER011 * 8
  325.                                 If (((INTEGER004 == 5) && (INTEGER005 == 5)) && (INTEGER006 == 5)) INTEGER010 = INTEGER010 + INTEGER011 * 10
  326.                                 AnsiPos 36, 13
  327.                                 If (INTEGER010 > INTEGER008) Then
  328.                                     Print "@X0BWinner!"
  329.                                     If (BOOLEAN006) Gosub LABEL020
  330.                                 Else
  331.                                     Print "@X03░▒░▒░▒░"
  332.                                 Endif
  333.                             Else
  334.                                 If ((STRING006 == "C") || (STRING006 == "c")) Then
  335.                                     :LABEL012
  336.                                     AnsiPos 1, 23
  337.                                     ClrEol
  338.                                     InputInt "Enter New Bet Amount (1-20) ", INTEGER011, 2
  339.                                     If ((INTEGER011 < 1) || (INTEGER011 > 20)) Goto LABEL012
  340.                                     AnsiPos 42, 16
  341.                                     Print "@X0F"
  342.                                     Print INTEGER011
  343.                                     Print " "
  344.                                     Goto LABEL010
  345.                                 Endif
  346.                                 If ((STRING006 == "S") || (STRING006 == "s")) Then
  347.                                     Gosub LABEL018
  348.                                     Goto LABEL010
  349.                                 Endif
  350.                                 If ((STRING006 == "H") || (STRING006 == "h")) Then
  351.                                     SaveScrn
  352.                                     Print "@CLS@"
  353.                                     PrintLn "@X0APlaying @X0EOne Armed Bandit @X0Ais easy!"
  354.                                     PrintLn 
  355.                                     PrintLn "@X0APress @X0EP@X0A or @X0ESpace@X0A to play."
  356.                                     PrintLn "@X0APress @X0EC@X0A to change the amount of your bet."
  357.                                     PrintLn "@X0APress @X0ES@X0A to see the current scores."
  358.                                     PrintLn "@X0APress @X0EQ@X0A to quit the game."
  359.                                     PrintLn "@X0APress @X0ER@X0A to redraw the screen."
  360.                                     PrintLn 
  361.                                     PrintLn "@X0APayoffs are as follows:"
  362.                                     PrintLn 
  363.                                     PrintLn "@X0CCHERRY@X0A  ------  ------  2X bet"
  364.                                     PrintLn "@X0CCHERRY  CHERRY@X0A  ------  3X"
  365.                                     PrintLn "@X0CCHERRY  CHERRY  CHERRY@X0A  4X"
  366.                                     PrintLn "@X0ELEMON   LEMON   LEMON@X0A   6X"
  367.                                     PrintLn "@X0DPLUM    PLUM    PLUM@X0A    7X"
  368.                                     PrintLn "@X0AGRAPE   GRAPE   GRAPE   8X"
  369.                                     PrintLn "@X0F$$$$$   $$$$$   $$$$$@X0A  10X"
  370.                                     PrintLn 
  371.                                     PrintLn "@X0AThe first person to score 5,000 wins, and the scores are then reset."
  372.                                     PrintLn 
  373.                                     Print Space(21)
  374.                                     Wait
  375.                                     RestScrn
  376.                                     Goto LABEL010
  377.                                 Endif
  378.                                 Goto LABEL010
  379.                             Endif
  380.                             AnsiPos 42, 16
  381.                             Print "@X0F", INTEGER011, " "
  382.                             AnsiPos 42, 18
  383.                             Print INTEGER010, " "
  384.                             AnsiPos 42, 20
  385.                             INTEGER012 = INTEGER012 - 1
  386.                             Print INTEGER012, " "
  387.                             If (MinLeft() < 5) Then
  388.                                 If (MinLeft() < 2) Then
  389.                                     PrintLn "@CLS@"
  390.                                     BOOLEAN005 = 1
  391.                                     Goto LABEL014
  392.                                 Endif
  393.                                 AnsiPos 30, 5
  394.                                 Print "@X0FCaution " + String(MinLeft()) + " min left"
  395.                             Endif
  396.                             AnsiPos 56, 23
  397.                             If (INTEGER012 == 0) Goto LABEL013
  398.                             If (INTEGER010 < 5000) Goto LABEL011
  399.                             Delay 10
  400.                             PrintLn "@CLS@ @X0C"
  401.                             If (BOOLEAN006) Gosub LABEL020
  402.                             STRING006 = "Congratulations " + STRING005 + ", you've won the round!"
  403.                             PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  404.                             If (BOOLEAN006) Gosub LABEL020
  405.                             Delay 30
  406.                             For INTEGER001 = 1 To 50
  407.                                 TSTRING010(INTEGER001, 1) = "NotUsed"
  408.                                 TSTRING010(INTEGER001, 2) = "01/01/90"
  409.                                 TSTRING010(INTEGER001, 3) = 0
  410.                             Next
  411.                             TSTRING010(51, 1) = U_Name()
  412.                             TSTRING010(51, 2) = Date()
  413.                             TSTRING010(51, 3) = 0
  414.                             Goto LABEL015
  415.                             :LABEL013
  416.                             Delay 40
  417.                             PrintLn "@CLS@ @X0F"
  418.                             STRING006 = "Sorry " + STRING005 + ", but you are out of turns for today."
  419.                             PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  420.                         Endif
  421.                     Endif
  422.                     :LABEL014
  423.                     PrintLn "@X0A"
  424.                     If (INTEGER010 >= INTEGER007) Then
  425.                         STRING006 = "You won " + String(INTEGER010 - INTEGER007) + " today!"
  426.                         PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  427.                     Else
  428.                         STRING006 = "You lost " + String(INTEGER007 - INTEGER010) + " today."
  429.                         PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  430.                     Endif
  431.                     PrintLn "@X0E"
  432.                     STRING006 = "Please call back tomorrow and play again."
  433.                     PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  434.                     If (INTEGER010 > INTEGER013) Then
  435.                         PrintLn "@X0F"
  436.                         STRING006 = "Congratulations, you now have the high score!"
  437.                         If (BOOLEAN006) Gosub LABEL020
  438.                         PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  439.                     Endif
  440.                     PrintLn 
  441.                     Print Space(26)
  442.                     Wait
  443.                     :LABEL015
  444.                     Gosub LABEL018
  445.                     PrintLn "@CLS@ @X0F"
  446.                     Print "Exiting .. "
  447.                     FCreate 1, PPEPath() + "ONE.DAT", 1, 3
  448.                     For INTEGER001 = 1 To 51
  449.                         If ((INTEGER010 < 5000) && (INTEGER002 == INTEGER001)) Then
  450.                             TSTRING010(INTEGER002, 2) = Date()
  451.                             TSTRING010(INTEGER002, 3) = INTEGER010
  452.                         Endif
  453.                         FPutLn 1, TSTRING010(INTEGER001, 1)
  454.                         FPutLn 1, TSTRING010(INTEGER001, 2)
  455.                         FPutLn 1, TSTRING010(INTEGER001, 3)
  456.                     Next
  457.                     FClose 1
  458.                     If (Exist(PPEPath() + "ONE.BAT")) Then
  459.                         FCreate 1, PPEPath() + "ONE.BLT", 1, 3
  460.                         FPutLn 1, ""
  461.                         FPut 1, "@X0F "
  462.                         STRING006 = "One Armed Bandit High Scores To Date"
  463.                         FPutLn 1, Space((76 - Len(STRING006)) / 2) + STRING006
  464.                         STRING006 = "════════════════════════════════════"
  465.                         FPut 1, "@X0C"
  466.                         FPutLn 1, Space((78 - Len(STRING006)) / 2) + STRING006
  467.                         If ((TSTRING010(51, 1) <> "NotUsed") && (TSTRING010(51, 1) <> "")) Then
  468.                             FPut 1, "@X0D"
  469.                             STRING006 = "Winner Last Round Was " + Mixed(TSTRING010(51, 1)) + " On " + TSTRING010(51, 2)
  470.                             FPutLn 1, Space((78 - Len(STRING006)) / 2) + STRING006
  471.                         Endif
  472.                         FPutLn 1, "@X0E"
  473.                         FPutLn 1, Space(18), "   Name                    Date     Score"
  474.                         FPutLn 1, "@X0A"
  475.                         For INTEGER001 = 1 To 50
  476.                             If (TSTRING011(INTEGER001, 1) <> "NotUsed") Then
  477.                                 If (INTEGER001 == 1) Then
  478.                                     FPut 1, "@X0F"
  479.                                     Goto LABEL016
  480.                                 Endif
  481.                                 FPut 1, "@X0A"
  482.                                 :LABEL016
  483.                                 FPut 1, Space(18), Mixed(TSTRING011(INTEGER001, 1)), "@POS:44@", TSTRING011(INTEGER001, 2), "   "
  484.                                 FPutLn 1, Right(Space(3) + TSTRING011(INTEGER001, 3), 4)
  485.                             Endif
  486.                         Next
  487.                         FClose 1
  488.                         Shell 1, INTEGER001, PPEPath() + "ONE.BAT", ""
  489.                     Endif
  490.                 Endif
  491.             Endif
  492.             :LABEL017
  493.             If (BOOLEAN003) Then
  494.                 PrintLn "Returning you to " + STRING003 + ".."
  495.             Else
  496.                 Delay 30
  497.                 PrintLn "Returning you to PCBoard.."
  498.                 Delay 30
  499.             Endif
  500.         Endif
  501.     Endif
  502.     Log "Exited ONE.PPE at " + Left(Time(), 5), 0
  503.     End
  504.     :LABEL018
  505.     If ((INTEGER012 <> 0) && !BOOLEAN005) SaveScrn
  506.     If (INTEGER010 < 5000) Then
  507.         TSTRING010(INTEGER002, 2) = Date()
  508.         TSTRING010(INTEGER002, 3) = INTEGER010
  509.     Endif
  510.     Print "@CLS@ @X0D"
  511.     For INTEGER001 = 1 To 50
  512.         TSTRING011(INTEGER001, 1) = TSTRING010(INTEGER001, 1)
  513.         TSTRING011(INTEGER001, 2) = TSTRING010(INTEGER001, 2)
  514.         TSTRING011(INTEGER001, 3) = TSTRING010(INTEGER001, 3)
  515.     Next
  516.     AnsiPos 30, 12
  517.     Print "Sorting."
  518.     :LABEL019
  519.     BOOLEAN004 = 1
  520.     For INTEGER001 = 1 To 99
  521.         INTEGER009 = INTEGER001 + 1
  522.         If ((TSTRING011(INTEGER009, 1) <> "NotUsed") && (S2I(TSTRING011(INTEGER009, 3), 10) > S2I(TSTRING011(INTEGER001, 3), 10))) Then
  523.             BOOLEAN004 = 0
  524.             STRING007 = TSTRING011(INTEGER001, 1)
  525.             STRING008 = TSTRING011(INTEGER001, 2)
  526.             STRING009 = TSTRING011(INTEGER001, 3)
  527.             TSTRING011(INTEGER001, 1) = TSTRING011(INTEGER009, 1)
  528.             TSTRING011(INTEGER001, 2) = TSTRING011(INTEGER009, 2)
  529.             TSTRING011(INTEGER001, 3) = TSTRING011(INTEGER009, 3)
  530.             TSTRING011(INTEGER009, 1) = STRING007
  531.             TSTRING011(INTEGER009, 2) = STRING008
  532.             TSTRING011(INTEGER009, 3) = STRING009
  533.         Endif
  534.     Next
  535.     Print "."
  536.     If (!BOOLEAN004) Goto LABEL019
  537.     Print "@CLS@ @X0F"
  538.     STRING006 = "One Armed Bandit High Scores To Date"
  539.     PrintLn Space((76 - Len(STRING006)) / 2) + STRING006
  540.     STRING006 = "════════════════════════════════════"
  541.     Print "@X0C"
  542.     PrintLn Space((78 - Len(STRING006)) / 2) + STRING006
  543.     If ((TSTRING010(51, 1) <> "NotUsed") && (TSTRING010(51, 1) <> "")) Then
  544.         Print "@X0D"
  545.         STRING006 = "Winner Last Round Was " + Mixed(TSTRING010(51, 1)) + " On " + TSTRING010(51, 2)
  546.         PrintLn Space((78 - Len(STRING006)) / 2) + STRING006
  547.         INTEGER009 = 13
  548.     Else
  549.         INTEGER009 = 15
  550.     Endif
  551.     PrintLn "@X0E"
  552.     PrintLn Space(18), "   Name                    Date     Score"
  553.     PrintLn "@X0A"
  554.     For INTEGER001 = 1 To INTEGER009
  555.         If (TSTRING011(INTEGER001, 1) <> "NotUsed") Then
  556.             Print "@X0A"
  557.             If (TSTRING011(INTEGER001, 1) == U_Name()) Print "@X0B"
  558.             If (INTEGER001 == 1) Print "@X0F"
  559.             Print Space(18), Mixed(TSTRING011(INTEGER001, 1)), "@POS:44@", TSTRING011(INTEGER001, 2), "   "
  560.             PrintLn Right(Space(3) + TSTRING011(INTEGER001, 3), 4)
  561.         Endif
  562.     Next
  563.     PrintLn 
  564.     Print Space(25)
  565.     Wait
  566.     If ((INTEGER012 <> 0) && !BOOLEAN005) RestScrn
  567.     Return
  568.     :LABEL020
  569.     Print Chr(7)
  570.     Return
  571.  
  572. ;------------------------------------------------------------------------------
  573. ;
  574. ; Usage report (before postprocessing)
  575. ;
  576. ; ■ Statements used :
  577. ;
  578. ;    1       End
  579. ;    2       Cls
  580. ;    2       ClrEol
  581. ;    6       Wait
  582. ;    91      Goto 
  583. ;    140     Let 
  584. ;    44      Print 
  585. ;    107     PrintLn 
  586. ;    80      If 
  587. ;    4       FCreate 
  588. ;    1       FOpen 
  589. ;    5       FClose 
  590. ;    6       FGet 
  591. ;    6       FPut 
  592. ;    17      FPutLn 
  593. ;    1       GetUser
  594. ;    4       Log 
  595. ;    1       InputYN 
  596. ;    1       InputInt 
  597. ;    6       Gosub 
  598. ;    2       Return
  599. ;    12      Delay 
  600. ;    1       GetToken 
  601. ;    1       Shell 
  602. ;    17      AnsiPos 
  603. ;    3       SaveScrn
  604. ;    3       RestScrn
  605. ;
  606. ;
  607. ; ■ Functions used :
  608. ;
  609. ;    7       *
  610. ;    25      /
  611. ;    90      +
  612. ;    30      -
  613. ;    66      ==
  614. ;    23      <>
  615. ;    18      <
  616. ;    10      <=
  617. ;    6       >
  618. ;    21      >=
  619. ;    53      !
  620. ;    61      &&
  621. ;    21      ||
  622. ;    25      Len(
  623. ;    7       Left()
  624. ;    3       Right()
  625. ;    44      Space()
  626. ;    2       Chr()
  627. ;    1       InStr()
  628. ;    12      Random()
  629. ;    5       Date()
  630. ;    2       Time()
  631. ;    6       U_Name()
  632. ;    1       Inkey()
  633. ;    4       String()
  634. ;    1       PCBDat()
  635. ;    8       PPEPath()
  636. ;    1       ReadLine()
  637. ;    4       MinLeft()
  638. ;    2       Exist()
  639. ;    2       S2I()
  640. ;    1       AnsiOn()
  641. ;    6       Mixed()
  642. ;
  643. ;------------------------------------------------------------------------------
  644. ;
  645. ; Analysis flags : Sd
  646. ;
  647. ; S - Shell to DOS ■ 5
  648. ;     This may be normal if the PPE need to execute an external command,
  649. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  650. ;     or usefull (sorting, maintenance,...). Check!
  651. ;     ■ Search for : SHELL
  652. ;
  653. ; d - Access PCBOARD.DAT ■ 2
  654. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  655. ;     for many PPE so they can find various informations on the system
  656. ;     (system paths, max number of lines in messages, ...) but it may also
  657. ;     be a way to gather vital informations.
  658. ;     ■ Search for : PCBDAT()
  659. ;
  660. ;------------------------------------------------------------------------------
  661. ;
  662. ; Postprocessing report
  663. ;
  664. ;    10      For/Next
  665. ;    0       While/EndWhile
  666. ;    34      If/Then or If/Then/Else
  667. ;    0       Select Case
  668. ;
  669. ;------------------------------------------------------------------------------
  670. ;                 AEGiS Corp - Break the routines, code against the machines!
  671. ;------------------------------------------------------------------------------
  672.