10 REM Foot11 20 REM by Graham Kendall 30 : 40 GOSUB 80 :REM Init_1 Routine 50 GOSUB 140 :REM Control Routine 60 END 70 : 80 REM Init_1 Routine 90 NOOFRECS% = 200:NOOFMATCHES% = 58 100 DIM IDENT$(NOOFRECS%), HOMES(NOOFMATCHES%,2), AWAYS(NOOFMATCHES%,2), DRAWS(NOOFMATCHES%,2), NSD(NOOFMATCHES%,2), LASTHOME%(NOOFMATCHES%), LASTAWAY%(NOOFMATCHES%), LASTDRAW%(NOOFMATCHES%), LASTNSD%(NOOFMATCHES%), LAST10WKS$(NOOFMATCHES%) 110 RECCNT% = 0 120 RETURN 130 : 140 REM Control Routine 150 GOSUB 250 :REM Get Results Filename Routine 160 GOSUB 320 :REM Open Files Routine 170 WHILE NOT EOF(1) 180 GOSUB 360 :REM Read Next Record Routine 190 GOSUB 420 :REM Process Record Routine 200 WEND 210 GOSUB 550 :REM Calculate Percentages Routine 220 GOSUB 640 :REM Display Control Routine 230 RETURN 240 : 250 REM Get Results Filename Routine 260 CLS:GOSUB 6500 :REM Print Heading Routine 270 TEXT$ = "What is the name of the file holding the results" 280 DOWN% = 10:GOSUB 5000 :REM Centre Text Routine 290 INPUT RESULTS$ 300 RETURN 310 : 320 REM Open Files Routine 330 OPEN "I",#1,RESULTS$ 340 RETURN 350 : 360 REM Read Next Record Routine 370 RECCNT% = RECCNT% +1 380 INPUT#1,RESREC$ 390 TEXT$ = "Processing Record" + STR$(RECCNT%):DOWN% = 21:GOSUB 5000 :REM Centre Text Routine 400 RETURN 410 : 420 REM Process Record Routine 430 IF LEN(RESREC$) <> (NOOFMATCHES% +8) THEN ERRMESS$ = "Incorrect no. of characters in record" + STR$(RECCNT%):GOSUB 1480 :REM Error Routine 440 FOR P% = 1 TO NOOFMATCHES% 450 T$ = MID$(RESREC$,P% +8,1) 460 IF INSTR(" 123A",T$) <2 THEN ERRMESS$ = "Invalid character at record" + STR$(RECCNT%) + " - Position" + STR$(P% + 8):GOSUB 1480 :REM Error Routine 470 IF T$ = "1" THEN HOMES(P%,1) = HOMES(P%,1) +1:LASTHOME%(P%) = RECCNT% 480 IF T$ = "2" THEN NSD(P%,1) = NSD(P%,1) +1:LASTNSD%(P%) = RECCNT% 490 IF T$ = "3" THEN DRAWS(P%,1) = DRAWS(P%,1) +1:LASTDRAW%(P%) = RECCNT% 500 IF T$ = "A" THEN AWAYS(P%,1) = AWAYS(P%,1) +1:LASTAWAY%(P%) = RECCNT% 510 LAST10WKS$(P%) = RIGHT$(STRING$(10," ") + LAST10WKS$(P%) + T$,10) 520 NEXT P% 530 RETURN 540 : 550 REM Calculate Percentage Routine 560 FOR I% = 1 TO NOOFMATCHES% 570 HOMES(I%,2) = INT(((HOMES(I%,1)/RECCNT%) * 100)*10)/10 580 AWAYS(I%,2) = INT(((AWAYS(I%,1)/RECCNT%) * 100)*10)/10 590 DRAWS(I%,2) = INT(((DRAWS(I%,1)/RECCNT%) * 100)*10)/10 600 NSD(I%,2) = INT(((NSD(I%,1)/RECCNT%) * 100)*10)/10 610 NEXT I% 620 RETURN 630 : 640 REM Display Control Routine 650 OPT$ = "" 660 WHILE (OPT$ <> "E") AND (OPT$ <> "e") 670 WHILE INSTR(" LlNnPpEe",OPT$) <2 680 CLS:GOSUB 6500 :REM Print Heading Routine 690 TEXT$ = "Would you like to see" 700 ACROSS% = 10:DOWN% = 10:GOSUB 5500 :REM Print Text Routine 710 TEXT$ = "L = Last Ten Weeks" 720 ACROSS% = 10:DOWN% = 12:GOSUB 5500 :REM Print Text Routine 730 TEXT$ = "N = Number of weeks since last Win/Draw etc" 740 ACROSS% = 10:DOWN% = 14:GOSUB 5500 :REM Print Text Routine 750 TEXT$ = "P = Percentage Figures" 760 ACROSS% = 10:DOWN% = 16:GOSUB 5500 :REM Print Text Routine 770 TEXT$ = "E = End" 780 ACROSS% = 10:DOWN% = 18:GOSUB 5500 :REM Print Text Routine 790 INPUT OPT$ 800 WEND 810 IF (OPT$ = "L" )OR (OPT$ = "l") THEN GOSUB 880 :REM Display Last Ten Weeks 820 IF (OPT$ = "N" )OR (OPT$ = "n") THEN GOSUB 1060 :REM Display Weeks since Win 830 IF (OPT$ = "P" )OR (OPT$ = "p") THEN GOSUB 1270 :REM Display Percentages 840 IF (OPT$ <> "E") AND (OPT$ <> "e") THEN OPT$ = "" 850 WEND 860 RETURN 870 : 880 REM Display Last Ten Weeks Routine 890 TEXT$ = "" 900 FOR P% = 1 TO 3 910 TEXT$ = TEXT$ + "No Last 10 Weeks" + STRING$(9," ") 920 NEXT P% 930 CLS:DOWN% = 1:ACROSS% = 1:GOSUB 5500 :REM Print Text Routine 940 FOR P% = 1 TO 20 950 TEXT$ = "" 960 FOR X% = 0 TO 40 STEP 20 970 TEXT$ = TEXT$ + RIGHT$("0" + MID$(STR$(P% + X%),2,2),2) 980 IF (P% + X%) < (NOOFMATCHES% +1) THEN TEXT$ = TEXT$ + RIGHT$(STRING$(11," ") + LAST10WKS$(P% + X%),11) ELSE TEXT$ = TEXT$ + STRING$(11," ") 990 TEXT$ = TEXT$ + STRING$(6," ") + "|" + STRING$(6," ") 1000 NEXT X% 1010 DOWN% = DOWN% +1:GOSUB 5500 :REM Print Text Routine 1020 NEXT P% 1030 GOSUB 6000 :REM Press Space Routine 1040 RETURN 1050 : 1060 REM Display Weeks Since Last Win Routine 1070 TEXT$ = "" 1080 FOR P% = 1 TO 3 1090 TEXT$ = TEXT$ + "No Home Away Draw NSD" + STRING$(5," ") 1100 NEXT P% 1110 CLS:DOWN% = 1:ACROSS% = 1:GOSUB 5500 :REM Print Text Routine 1120 FOR P% = 1 TO 20 1130 TEXT$ = "" 1140 FOR X% = 0 TO 40 STEP 20 1150 TEXT$ = TEXT$ + RIGHT$("0" + MID$(STR$(P% + X%),2,2),2) 1160 IF (P% + X%) <(NOOFMATCHES% +1) THEN TEXT$ = TEXT$ + RIGHT$(STRING$(5," ") + MID$(STR$(LASTHOME%(P% + X%) - RECCNT%),2,3),5) ELSE TEXT$ = TEXT$ + STRING$(5," ") 1170 IF (P% + X%) < (NOOFMATCHES% + 1) THEN TEXT$ = TEXT$ + RIGHT$(STRING$(5," ") + MID$(STR$(LASTAWAY%(P% + X%) - RECCNT%),2,3),5) ELSE TEXT$ = TEXT$ + STRING$(5," ") 1180 IF (P% + X%) < (NOOFMATCHES% +1) THEN TEXT$ = TEXT$ + RIGHT$(STRING$(5," ") + MID$(STR$(LASTDRAW%(P% + X%) - RECCNT%),2,3),5) ELSE TEXT$ = TEXT$ + STRING$(5," ") 1190 IF (P% + X%) < (NOOFMATCHES% +1) THEN TEXT$ = TEXT$ + RIGHT$(STRING$(5," ") + MID$(STR$(LASTNSD%(P% + X%) - RECCNT%),2,3),5) ELSE TEXT$ = TEXT$ + STRING$(5," ") 1200 TEXT$ = TEXT$ + STRING$(2," ") + "|" + STRING$(2," ") 1210 NEXT X% 1220 DOWN% = DOWN% +1:GOSUB 5500 :REM Print Text Routine 1230 NEXT P% 1240 GOSUB 6000 :REM Press Space Routine 1250 RETURN 1260 : 1270 REM Display Percentage Figures Routine 1280 TEXT$ = "" 1290 FOR P% = 1 TO 3 1300 TEXT$ = TEXT$ + "No Home Away Draw NSD" + STRING$(5," ") 1310 NEXT P% 1320 CLS:DOWN% = 1:ACROSS% = 1:GOSUB 5500 :REM Print Text Routine 1330 FOR P% = 1 TO 20 1340 TEXT$ = "" 1350 FOR X% = 0 TO 40 STEP 20 1360 TEXT$ = TEXT$ + RIGHT$("0" + MID$(STR$(P% + X%),2,2),2) 1370 IF (P% + X%) <(NOOFMATCHES% +1) THEN TEXT$ = TEXT$ + RIGHT$(STRING$(5," ") + MID$(STR$(HOMES(P% + X%,2)),2,4),5) ELSE TEXT$ = TEXT$ + STRING$(5," ") 1380 IF (P% + X%) < (NOOFMATCHES% + 1) THEN TEXT$ = TEXT$ + RIGHT$(STRING$(5," ") + MID$(STR$(AWAYS(P% + X%,2)),2,4),5) ELSE TEXT$ = TEXT$ + STRING$(5," ") 1390 IF (P% + X%) < (NOOFMATCHES% +1) THEN TEXT$ = TEXT$ + RIGHT$(STRING$(5," ") + MID$(STR$(DRAWS(P% + X%,2)),2,4),5) ELSE TEXT$ = TEXT$ + STRING$(5," ") 1400 IF (P% + X%) < (NOOFMATCHES% +1) THEN TEXT$ = TEXT$ + RIGHT$(STRING$(5," ") + MID$(STR$(NSD(P% + X%,2)),2,4),5) ELSE TEXT$ = TEXT$ + STRING$(5," ") 1410 TEXT$ = TEXT$ + STRING$(2," ") + "|" + STRING$(2," ") 1420 NEXT X% 1430 DOWN% = DOWN% +1:GOSUB 5500 :REM Print Text Routine 1440 NEXT P% 1450 GOSUB 6000 :REM Press Space Routine 1460 RETURN 1470 : 1480 REM Error Routine 1490 CLS:GOSUB 6500 :REM Print Heading Routine 1500 TEXT$ = ERRMESS$ + " - Program Terminating":DOWN% = 17:GOSUB 5000 :REM Centre Text Routine 1510 GOSUB 6000 :REM Press Space Routine 1520 END 1530 RETURN 1540 : 5000 REM Print Centred Text Routine 5010 PRINT CHR$(11) 5020 FOR I% = 1 TO DOWN% -1:PRINT CHR$(10);:NEXT 5030 ACROSS% = (79-LEN(TEXT$))/2 5040 PRINT TAB(ACROSS%);TEXT$ 5050 RETURN 5060 : 5500 REM Print Text on Screen Routine 5510 PRINT CHR$(11) 5520 FOR I% = 1 TO DOWN% -1:PRINT CHR$(10);:NEXT 5530 PRINT TAB(ACROSS%);TEXT$ 5540 RETURN 5550 : 6000 REM Press Space Routine 6010 TEXT$ = "Press Space to Continue" 6020 DOWN% = 22:GOSUB 5000 : REM Centre Text Routine 6030 WHILE INKEY$ <> " " 6040 WEND 6050 RETURN 6060 : 6500 REM Print Heading Routine 6510 TEXT$ = "Football Program 11" 6520 DOWN% = 2:GOSUB 5000 : REM Centre Text Routine 6530 RETURN