10 REM PRINT WEEKLY RECAP SHEET (RECAP) 12 REM Developed by William W. Klaproth, Moraga Ca. 94556 September 1982 20 REM MASTER FILE DESCRIPTIONS FOR ALL BOWLING PROGRAMS 30 OPEN "B:TEAMS.HDR" AS #1 LEN = 64 40 FIELD #1, 2 AS TM$, 30 AS NAM$, 2 AS RCNT$, 2 AS GAM$, 4 AS PINS$, 2 AS AVG$, 2 AS HIG$, 2 AS HIS$, 4 AS PTSW$, 4 AS PTSL$, 2 AS B1ID$, 2 AS B2ID$, 2 AS B3ID$, 2 AS B4ID$, 2 AS B5ID$ 50 FIELD #1, 2 AS HDRID$, 30 AS LEAGUE$, 2 AS WEEKS$, 2 AS TEAMS$, 4 AS FILLER$, 2 AS BWLPERTM$, 2 AS NXTID$, 2 AS HCPBASE$, 4 AS HCPPCNT$ 60 OPEN "B:BOWLERS.HDR" AS #2 LEN = 64 70 FIELD #2, 2 AS BBO$, 30 AS BNAM$, 2 AS BRCNT$, 2 AS BGAM$, 4 AS BPINS$, 2 AS BAVG$, 2 AS BHIG$, 2 AS BHIS$, 2 AS BHCP$, 2 AS BHIGH$, 2 AS BHISH$, 2 AS BTM$,2 AS GAM2$, 2 AS SER5$, 2 AS SER6$,2 AS CURSER$,2 AS AVGLSTYR$ 80 REM OPEN "B:TEAM.DET" AS #3 LEN = 16 90 REM FIELD #3,2 AS DTM$, 2 AS TMO$, 2 AS TDAY$, 2 AS TG1$, 2 AS TG2$, 2 AS TG3$, 2 AS TSER$, 2 AS DPTSW$ 100 REM OPEN "B:BOWLER.DET" AS #4 LEN = 16 110 REM FIELD #4,2 AS DBO$, 2 AS BMO$, 2 AS BDAY$, 2 AS BG1$, 2 AS BG2$, 2 AS BG3$, 2 AS BSER$ 120 CLS 130 PRINT "PRINT WEEKLY RECAP SHEET" 140 GET #1,1 150 TEAMS% = CVI(TEAMS$) 160 BOWLERS% = CVI(BWLPERTM$) 170 WEEKS% = CVI(WEEKS$) 180 NEXTID% = CVI(NXTID$) 190 DIM TM%(TEAMS%) 200 DIM NAM$(TEAMS%) 210 DIM GAM%(TEAMS%) 220 DIM PINS(TEAMS%) 230 DIM AVG%(TEAMS%) 240 DIM HIG%(TEAMS%) 250 DIM HIS%(TEAMS%) 260 DIM PTSW(TEAMS%) 270 DIM PTSL(TEAMS%) 280 REM BOWLER SCORES TABLES 290 DIM BONUM%(NEXTID% - 1) 'TABLE FOR HI GAME 300 DIM HIGAME%(NEXTID% - 1) ' * 310 DIM BONUM2%(NEXTID% - 1) 'TABLE FOR HI SERIES 320 DIM HISERIES%(NEXTID% - 1) ' * 330 D% = 0 'SET START OF SCORES TABLE 340 LPRINT "RHEEM VALLEY BOWL ";LEAGUE$;SPC(10);DATE$ 350 LPRINT " " 360 DIM TABTM%(TEAMS%) 370 DIM TABPTS#(TEAMS%) 380 FOR T% = 1 TO TEAMS% 390 GET #1, (T% + 1) 400 TM%(T%) = CVI(TM$) 410 NAM$(T%) = NAM$ 420 GAM%(T%) = CVI(GAM$) 430 PINS(T%) = CVS(PINS$) 440 AVG%(T%) = CVI(AVG$) 450 HIG%(T%) = CVI(HIG$) 460 HIS%(T%) = CVI(HIS$) 470 PTSW(T%) = CVS(PTSW$) 480 PTSL(T%) = CVS(PTSL$) 490 TABTM%(T%) = TM%(T%) 'LOAD SORT TABLE 500 TABPTS#(T%) = PTSW(T%) * 1000000! + PINS(T%) ' * 510 NEXT T% 520 REM SORT TEAMS BY POINTS WON 530 PRINT "SORTING TEAMS BY POINTS WON" 540 M% = TEAMS%: LAST$ = " " 550 M% = M% / 2 560 IF LAST$ = "Y" GOTO 700 570 IF M% = 1 THEN LAST$ = "Y" 580 K% = TEAMS% - M%: J% = 1 590 I% = J% 600 L% = I% + M% 610 IF TABPTS#(I%) <= TABPTS#(L%) GOTO 670 620 TEMPPTS# = TABPTS#(I%): TEMPTM% = TABTM%(I%) 630 TABPTS#(I%) = TABPTS#(L%): TABTM%(I%) = TABTM%(L%) 640 TABPTS#(L%) = TEMPPTS#: TABTM%(L%) = TEMPTM% 650 I% = I% - M% 660 IF I% > 0 GOTO 600 670 J% = J% + 1 680 IF J% > K% GOTO 550 ELSE GOTO 590 690 REM END OF INTERNAL SORT ROUTINE 700 PRINT "PRINTING TEAM STANDINGS" 710 LPRINT "PLACE TEAM WON LOST PINS GAM AVG HIG HIS" 720 LPRINT "----- ----- --- ---- ---- --- --- --- ---" 730 PLACE% = 1 740 FOR PL% = TEAMS% TO 1 STEP -1 750 T% = TABTM%(PL%) 760 LPRINT USING " ## ";PLACE%; 770 LPRINT NAM$(T%); 780 LPRINT USING "###.# ";PTSW(T%),PTSL(T%); 790 LPRINT USING "##### ";PINS(T%); 800 LPRINT USING " ### ";GAM%(T%); 810 LPRINT USING "#### ";AVG%(T%),HIG%(T%),HIS%(T%) 820 PLACE% = PLACE% + 1 830 NEXT PL% 840 LPRINT "*****************************************************************************" 850 PRINT "PRINTING BOWLER RECAP" 860 LPRINT "TEAM NAME SER PINS GMS AVG HIG HIS 200 500 600" 870 LPRINT "---- ----- --- ---- --- --- --- --- --- --- ---" 880 FOR T% = 1 TO TEAMS% 890 GET 1, (T% + 1) 900 BID%(1) = CVI(B1ID$) 910 BID%(2) = CVI(B2ID$) 920 BID%(3) = CVI(B3ID$) 930 BID%(4) = CVI(B4ID$) 940 BID%(5) = CVI(B5ID$) 950 FOR B% = 1 TO BOWLERS% 960 GET #2,BID%(B%) 970 IF B% = 1 THEN LPRINT USING " ## ";T%; 980 IF B% > 1 THEN LPRINT " "; 990 LPRINT BNAM$; 1000 CURSER% = CVI(CURSER$) 1010 IF CURSER% > 50 THEN GOTO 1040 ELSE LPRINT " A-"; 1020 LPRINT USING "# ";CURSER%; 1030 GOTO 1050 1040 LPRINT USING " ### ";CURSER%; 1050 LPRINT USING " ##### ";CVS(BPINS$); 1060 LPRINT USING "### ";CVI(BGAM$); 1070 LPRINT USING " ### ";CVI(BAVG$),CVI(BHIG$),CVI(BHIS$); 1080 GAM2% = CVI(GAM2$): SER5% = CVI(SER5$): SER6% = CVI(SER6$) 1090 IF GAM2% = 0 THEN LPRINT SPC(4) ELSE LPRINT USING "### ";CVI(GAM2$); 1100 IF SER5% = 0 THEN LPRINT SPC(4) ELSE LPRINT USING "### ";CVI(SER5$); 1110 IF SER6% > 0 THEN LPRINT USING "### ";CVI(SER6$) ELSE LPRINT SPC(6) 1120 D% = D% + 1 1130 BONUM%(D%) = CVI(BBO$) 'MOVE SCORES TO TABLE FOR SORTING 1140 HIGAME%(D%) = CVI(BHIG$) ' * 1150 BONUM2%(D%) = BONUM%(D%) ' * 1160 HISERIES%(D%) = CVI(BHIS$) ' * 1170 NEXT B% 1180 NEXT T% 1190 LPRINT "*****************************************************************************" 1200 PRINT "PRINTING SUBSTITUTE RECAP" 1210 LPRINT "SUBS" 1220 FOR S% = 1 TO (NEXTID% - 1) 1230 GET #2,S% 1240 IF CVI(BTM$) > 0 GOTO 1370 1250 LPRINT " "; 1260 LPRINT USING "## ";CVI(BBO$); 1270 LPRINT BNAM$; 1280 CURSER% = CVI(CURSER$) 1290 IF CURSER% < 50 THEN LPRINT SPC(5) ELSE LPRINT USING " ### ";CURSER%; 1300 LPRINT USING " ##### ";CVS(BPINS$); 1310 LPRINT USING "### ";CVI(BGAM$); 1320 LPRINT USING " ### ";CVI(BAVG$),CVI(BHIG$),CVI(BHIS$); 1330 GAM2% = CVI(GAM2$): SER5% = CVI(SER5$): SER6% = CVI(SER6$) 1340 IF GAM2% = 0 THEN LPRINT SPC(4) ELSE LPRINT USING "### ";CVI(GAM2$); 1350 IF SER5% = 0 THEN LPRINT SPC(4) ELSE LPRINT USING "### ";CVI(SER5$); 1360 IF SER6% > 0 THEN LPRINT USING "### ";CVI(SER6$) ELSE LPRINT SPC(6) 1370 NEXT S% 1380 LPRINT CHR$(12) 1390 LPRINT " " 1400 LPRINT " HIGH GAME HIGH SERIES" 1410 LPRINT " --------- -----------" 1420 REM SORT HIGAME SCORES 1430 PRINT "SORTING BOWLER HIGAME SCORES" 1440 M% = NEXTID% - 1: LAST$ = " " 1450 M% = M% / 2 1460 IF LAST$ = "Y" GOTO 1610 1470 IF M% = 1 THEN LAST$ = "Y" 1480 K% = (NEXTID% - 1) - M%: J% = 1 1490 I% = J% 1500 L% = I% + M% 1510 IF HIGAME%(I%) <= HIGAME%(L%) GOTO 1570 1520 TEMPGAME% = HIGAME%(I%): TEMPBO% = BONUM%(I%) 1530 HIGAME%(I%) = HIGAME%(L%): BONUM%(I%) = BONUM%(L%) 1540 HIGAME%(L%) = TEMPGAME%: BONUM%(L%) = TEMPBO% 1550 I% = I% - M% 1560 IF I% > 0 GOTO 1500 1570 J% = J% + 1 1580 IF J% > K% GOTO 1450 ELSE GOTO 1490 1590 REM END OF HIGAME SORT ROUTINE 1600 REM SORT HISERIES SCORES 1610 PRINT "SORTING BOWLER HISERIES SCORES" 1620 M% = NEXTID% - 1: LAST$ = " " 1630 M% = M% / 2 1640 IF LAST$ = "Y" GOTO 1780 1650 IF M% = 1 THEN LAST$ = "Y" 1660 K% = (NEXTID% - 1) - M%: J% = 1 1670 I% = J% 1680 L% = I% + M% 1690 IF HISERIES%(I%) <= HISERIES%(L%) GOTO 1750 1700 TEMPSERIES% = HISERIES%(I%): TEMPBO% = BONUM2%(I%) 1710 HISERIES%(I%) = HISERIES%(L%): BONUM2%(I%) = BONUM2%(L%) 1720 HISERIES%(L%) = TEMPSERIES%: BONUM2%(L%) = TEMPBO% 1730 I% = I% - M% 1740 IF I% > 0 GOTO 1680 1750 J% = J% + 1 1760 IF J% > K% GOTO 1630 ELSE GOTO 1670 1770 REM END OF HISERIES SORT ROUTINE 1780 BEEP 1790 INPUT "HOW MANY LINES OF HIGH SCORES DO YOU WISH TO PRINT:";LINES% 1800 LIMIT% = (NEXTID% - LINES%) 1810 PRINT "PRINTING LEAGUE HIGH SCORES" 1820 FOR PL% = (NEXTID% - 1) TO LIMIT% STEP -1 1830 GET #2,BONUM%(PL%) 1840 HIGNAM$ = LEFT$(BNAM$,20) 1850 GET #2,BONUM2%(PL%) 1860 LPRINT SPC(5);HIGNAM$; 1870 LPRINT USING " ###";HIGAME%(PL%); 1880 LPRINT SPC(7);LEFT$(BNAM$,20); 1890 LPRINT USING " ###";HISERIES%(PL%) 1900 NEXT PL% 1910 LPRINT " " 1920 LPRINT " HI LITES LAST WEEK" 1930 LPRINT " ------------------" 1940 LPRINT " " 1950 REM READ HILITE RECORDS FROM FILE #5 1960 L% = NEXTID% 1970 DIM HBNO%(L%) 1980 DIM HG1%(L%) 1990 DIM HG2%(L%) 2000 DIM HG3%(L%) 2010 DIM HSER%(L%) 2020 DIM FLG1$(L%) 2030 DIM FLG2$(L%) 2040 DIM FLG3$(L%) 2050 DIM FLGS$(L%) 2060 DIM HCNT%(L%) 2070 DIM SCOR%(4) 2080 OPEN "B:HISCORES.DET" AS #5 LEN = 16 2090 FIELD #5, 2 AS HBNO$, 2 AS HG1$, 2 AS HG2$, 2 AS HG3$, 2 AS HSER$, 1 AS HFLG1$, 1 AS HFLG2$, 1 AS HFLG3$, 1 AS HFLGS$, 2 AS HCNT$ 2100 PRINT "PROCESSING LAST WEEK'S HILITES" 2110 HILITE% = 0 2120 FOR T% = 1 TO L% 2130 GET #5,T% 2140 HG1%(T%) = CVI(HG1$) 2150 IF HG1%(T%) = 9999 GOTO 2210 2160 HBNO%(T%) = CVI(HBNO$): HG2%(T%) = CVI(HG2$) 2170 HG3%(T%) = CVI(HG3$): HSER%(T%) = CVI(HSER$) 2180 FLG1$(T%) = HFLG1$: FLG2$(T%) = HFLG2$: FLG3$(T%) = HFLG3$: FLGS$(T%) = HFLGS$: HCNT%(T%) = CVI(HCNT$) 2190 IF HCNT%(T%) > 0 THEN HILITE% = HILITE% + 1 2200 NEXT T% 2210 PRSW$ = "L" 2220 FOR V% = 1 TO L% 2230 IF HG1%(V%) = 9999 GOTO 2470 2240 IF HCNT%(V%) = 0 GOTO 2450 2250 GET #2,HBNO%(V%) 2260 U% = 1 2270 IF FLG1$(V%) = "1" THEN SCOR%(U%) = HG1%(V%):U%=U%+1 2280 IF FLG2$(V%) = "1" THEN SCOR%(U%) = HG2%(V%):U%=U%+1 2290 IF FLG3$(V%) = "1" THEN SCOR%(U%) = HG3%(V%):U%=U%+1 2300 IF FLGS$(V%) = "1" THEN SCOR%(U%) = HSER%(V%):U%=U%+1 2310 IF U% = 1 GOTO 2440 2320 LPRINT LEFT$(BNAM$,20); 2330 ON U% GOTO 2440,2340,2370,2400,2430 2340 LPRINT USING "### ";SCOR%(1); 2350 LPRINT " "; 2360 GOTO 2440 2370 LPRINT USING "### ";SCOR%(1),SCOR%(2); 2380 LPRINT " "; 2390 GOTO 2440 2400 LPRINT USING "### ";SCOR%(1),SCOR%(2),SCOR%(3); 2410 LPRINT " "; 2420 GOTO 2440 2430 LPRINT USING "### ";SCOR%(1),SCOR%(2),SCOR%(3),SCOR%(4); 2440 IF PRSW$ = "R" THEN LPRINT " " 2450 IF PRSW$ = "R" THEN PRSW$ = "L" ELSE PRSW$ = "R" 2460 NEXT V% 2470 LPRINT " ": IF PRSW$ = "R" THEN LPRINT " " 2480 DIM MESG$(7) 2490 K% = 1 2500 LINE INPUT "ENTER MESSAGES:";MESG$(K%) 2510 TMSG$ = MESG$(K%) 2520 FIRST4$ = LEFT$(TMSG$,4) 2530 IF FIRST4$ = "*END" OR FIRST4$ = "*end" GOTO 2570 2540 IF K% = 7 GOTO 2580 2550 K% = K% + 1 2560 GOTO 2500 2570 K% = K% - 1 2580 LPRINT " " 2590 INPUT "ENTER NEXT BOWLING DATE (MM,DD): ",SMO%,SDY% 2600 IF SMO% = 0 GOTO 2860 2610 OPEN "B:SCHEDULE.DET" AS #3 LEN = 75 2620 FIELD #3, 1 AS STATUS$, 2 AS WEEK$, 2 AS SMO$, 2 AS SDY$, 68 AS PRLINE$ 2630 GET #3,1 2640 LPRINT "DATE\ LANE ";PRLINE$ 2650 LPRINT "----- "; 2660 FOR LN% = 1 TO TEAMS% / 2 2670 LPRINT " -----"; 2680 NEXT LN% 2690 LPRINT " " 2700 FOR L% = 2 TO 40 2710 GET #3,L% 2720 IF CVI(SMO$) = 99 GOTO 2750 2730 IF SMO% = CVI(SMO$) THEN IF SDY% = CVI(SDY$) GOTO 2770 ELSE GOTO 2740 2740 NEXT L% 2750 PRINT "**ERROR - NO MATCH FOUND IN SCHEDULE FILE" 2760 STOP 2770 FOR M% = L% TO (L% + 2) 2780 GET #3, M% 2790 IF CVI(SMO$) = 99 GOTO 2850 2800 LPRINT USING "##";CVI(SMO$); 2810 LPRINT USING "/##";CVI(SDY$); 2820 LPRINT SPC(6); 2830 LPRINT PRLINE$ 2840 NEXT M% 2850 LPRINT " " 2860 FOR L% = 1 TO K% 2870 LPRINT MESG$(L%) 2880 NEXT L% 2890 LPRINT CHR$(12) 2900 PRINT "Print Processing Completed - Returning to MENU" 2910 CLOSE 2920 RUN "A:MENU"