10 REM Foot9 20 REM by Graham Kendall 30 : 40 GOSUB 130 :REM Init_1 Routine 50 GOSUB 1310 :REM Confirm Draw Routine 60 GOSUB 1240 :REM Get Results Filename Routine 70 GOSUB 1170 :REM Get Tips Filename Routine 80 GOSUB 1470 :REM Open Files Routine 90 GOSUB 1520 :REM Validate Results File Routine 100 GOSUB 180 :REM Control Routine 110 END 120 : 130 REM Init_1 Routine 140 NOOFMATCHES% = 58 150 DIM NAMES$(8), HOMES%(8,2), AWAYS%(8,2), DRAWS%(8,2), NSD%(8,2), CORRECT%(8,2), AGREEDRES$(NOOFMATCHES% +2) 160 RETURN 170 : 180 REM Control Routine 190 WHILE (EOF(1) <> -1) AND (TIPSCNT% <> 8) 200 TIPSCNT% = TIPSCNT% + 1 210 INPUT#1,TIPSREC$ 220 IF TIPSCNT% = 1 THEN FOR X% = 3 TO 60:AGREEDRES$(X%) = MID$(TIPSREC$,X%,1):NEXT X% 230 GOSUB 1670 :REM Validate Tipsters File Routine 240 GOSUB 300 :REM Stats_1 Routine 250 GOSUB 410 :REM Work out Percentages Routine 260 WEND 270 GOSUB 490 :REM Output Routine 280 RETURN 290 : 300 REM Stats_1 Routine 310 NAMES$(TIPSCNT%) = LEFT$(TIPSREC$,2) 320 FOR I% = 1 TO NOOFMATCHES% 330 A$ = MID$(RESREC$,I%,1) 340 B$ = MID$(TIPSREC$,I%+2,1) 350 IF INSTR("13A" + NSD$,B$) <1 THEN ERRMESS$ = "Tipster File Contains an invalid character":GOSUB 1710 :REM Error Routine 360 IF A$ = B$ THEN GOSUB 1090 :REM Correct Result Routine 370 IF AGREEDRES$(I% +2) <> B$ THEN AGREEDRES$(I% +2) = "Void" 380 NEXT I% 390 RETURN 400 : 410 REM Work out Percentages Routine 420 IF HOMES%(TIPSCNT%,1) <> 0 THEN HOMES%(TIPSCNT%,2) = (HOMES%(TIPSCNT%,1)/TOTHOMES%)*100 430 IF AWAYS%(TIPSCNT%,1) <> 0 THEN AWAYS%(TIPSCNT%,2) = (AWAYS%(TIPSCNT%,1)/TOTAWAYS%)*100 440 IF DRAWS%(TIPSCNT%,1) <> 0 THEN DRAWS%(TIPSCNT%,2) = (DRAWS%(TIPSCNT%,1)/TOTDRAWS%)*100 450 IF NSD%(TIPSCNT%,1) <> 0 THEN NSD%(TIPSCNT%,2) = (NSD%(TIPSCNT%,1)/TOTNSD%)*100 460 IF CORRECT%(TIPSCNT%,1) <> 0 THEN CORRECT%(TIPSCNT%,2) = (CORRECT%(TIPSCNT%,1)/NOOFMATCHES%)*100 470 RETURN 480 : 490 REM Output Routine 500 CLS:GOSUB 6500 :REM Print Heading Routine 510 TEXT$ = "RESULTS" 520 DOWN% = 3:ACROSS% = 1:GOSUB 5500 :REM Print Text Routine 530 TEXT$ = "=======" 540 DOWN% = 4:ACROSS% = 1:GOSUB 5500 :REM Print Text Routine 550 TEXT$ = "Homes = " + STR$(TOTHOMES%) 560 TEXT$ = TEXT$ + STRING$(3," ") + "Aways = " + STR$(TOTAWAYS%) 570 TEXT$ = TEXT$ + STRING$(3," ") + "Score Draws = " + STR$(TOTDRAWS%) 580 TEXT$ = TEXT$ + STRING$(3," ") + "No Score Draws = " + STR$(TOTNSD%) 590 DOWN% = 5:ACROSS% = 1:GOSUB 5500 :REM Print Text Routine 600 TEXT$ = LEFT$("Tipster" + STRING$(10," "),10) 610 TEXT$ = TEXT$ + LEFT$("Homes" + STRING$(8," "),8) 620 TEXT$ = TEXT$ + LEFT$("%" + STRING$(6," "),6) 630 TEXT$ = TEXT$ + LEFT$("Aways" + STRING$(8," "),8) 640 TEXT$ = TEXT$ + LEFT$("%" + STRING$(6," "),6) 650 TEXT$ = TEXT$ + LEFT$("Draws" + STRING$(8," "),8) 660 TEXT$ = TEXT$ + LEFT$("%" + STRING$(6," "),6) 670 TEXT$ = TEXT$ + LEFT$("NSD" + STRING$(8," "),8) 680 TEXT$ = TEXT$ + LEFT$("%" + STRING$(6," "),6) 690 TEXT$ = TEXT$ + LEFT$("Total" + STRING$(8," "),8) 700 TEXT$ = TEXT$ + LEFT$("%" + STRING$(6," "),6) 710 DOWN% = 7:ACROSS% = 1:GOSUB 5500 :REM Print Text Routine 720 FOR P% = 1 TO TIPSCNT% 730 TEXT$ = LEFT$(NAMES$(P%) + STRING$(10," "),10) 740 TEXT$ = TEXT$ + LEFT$(STR$(HOMES%(P%,1)) + STRING$(7," "),7) 750 TEXT$ = TEXT$ + LEFT$(STR$(HOMES%(P%,2)) + STRING$(7," "),7) 760 TEXT$ = TEXT$ + LEFT$(STR$(AWAYS%(P%,1)) + STRING$(7," "),7) 770 TEXT$ = TEXT$ + LEFT$(STR$(AWAYS%(P%,2)) + STRING$(7," "),7) 780 TEXT$ = TEXT$ + LEFT$(STR$(DRAWS%(P%,1)) + STRING$(7," "),7) 790 TEXT$ = TEXT$ + LEFT$(STR$(DRAWS%(P%,2)) + STRING$(7," "),7) 800 TEXT$ = TEXT$ + LEFT$(STR$(NSD%(P%,1)) + STRING$(7," "),7) 810 TEXT$ = TEXT$ + LEFT$(STR$(NSD%(P%,2)) + STRING$(7," "),7) 820 TEXT$ = TEXT$ + LEFT$(STR$(CORRECT%(P%,1)) + STRING$(7," "),7) 830 TEXT$ = TEXT$ + LEFT$(STR$(CORRECT%(P%,2)) + STRING$(7," "),7) 840 DOWN% = DOWN% + 1:ACROSS% = 1:GOSUB 5500 :REM Print Text Routine 850 NEXT P% 860 TEXT$ = "" 870 FOR P% = 1 TO NOOFMATCHES% 880 IF INT(P%/10) = P%/10 THEN TEXT$ = TEXT$ + MID$(STR$(P%),2,1) ELSE TEXT$ = TEXT$ + " " 890 NEXT P% 900 DOWN% = 17:ACROSS% = 1:GOSUB 5500 :REM Print Text Routine 910 TEXT$ = "" 920 FOR P% = 1 TO NOOFMATCHES% 930 TEXT$ = TEXT$ + RIGHT$(STR$(P%),1) 940 NEXT P% 950 DOWN% = 18:ACROSS% = 1:GOSUB 5500 :REM Print Text Routine 960 TEXT$ = "" 970 FOR P% = 3 TO NOOFMATCHES% +2 980 IF AGREEDRES$(P%) <> "Void" THEN TEXT$ = TEXT$ + AGREEDRES$(P%) ELSE TEXT$ = TEXT$ + " " 990 NEXT P% 1000 DOWN% = 19:ACROSS% = 1:GOSUB 5500 :REM Print Text Routine 1010 TEXT$ = "" 1020 FOR P% = 1 TO NOOFMATCHES% 1030 IF AGREEDRES$(P% +2) = MID$(RESREC$,P%,1) THEN TEXT$ = TEXT$ + "*" ELSE TEXT$ = TEXT$ + " " 1040 NEXT P% 1050 DOWN% = 20:ACROSS% = 1:GOSUB 5500 :REM Print Text Routine 1060 GOSUB 6000 :REM Press Space Routine 1070 RETURN 1080 : 1090 REM Correct Result Routine 1100 IF A$ = "1" THEN HOMES%(TIPSCNT%,1) = HOMES%(TIPSCNT%,1) + 1 1110 IF A$ = "2" THEN NSD%(TIPSCNT%,1) = NSD%(TIPSCNT%,1) + 1 1120 IF A$ = "3" THEN DRAWS%(TIPSCNT%,1) = DRAWS%(TIPSCNT%,1) + 1 1130 IF A$ = "A" THEN AWAYS%(TIPSCNT%,1) = AWAYS%(TIPSCNT%,1) + 1 1140 CORRECT%(TIPSCNT%,1) = CORRECT%(TIPSCNT%,1) + 1 1150 RETURN 1160 : 1170 REM Get Tips Filename Routine 1180 CLS:GOSUB 6500 :REM Print Heading Routine 1190 TEXT$ = "What is the name of the file holding the tipsters selections" 1200 DOWN% = 10:GOSUB 5000 :REM Centre Text Routine 1210 INPUT TIPS$ 1220 RETURN 1230 : 1240 REM Get Results Filename Routine 1250 CLS:GOSUB 6500 :REM Print Heading Routine 1260 TEXT$ = "What is the name of the file holding the results" 1270 DOWN% = 10:GOSUB 5000 :REM Centre Text Routine 1280 INPUT RESULTS$ 1290 RETURN 1300 : 1310 REM Confirm Draw Routine 1320 A% =0 1330 WHILE A% = 0:CLS:GOSUB 6500 :REM Print Heading Routine 1340 TEXT$ = "Do your tipsters separate Score Draws and No Score Draws?" 1350 DOWN% = 10:GOSUB 5000 :REM Centre Text Routine 1360 DRAWQUES$ = "" 1370 WHILE INSTR(" yYnN",DRAWQUES$) <2 1380 DRAWQUES$ = INKEY$ 1390 WEND 1400 A% = INSTR("yYnN",DRAWQUES$) 1410 WEND 1420 IF DRAWQUES$ = "y" THEN DRAWQUES$ = "Y" 1430 IF DRAWQUES$ = "n" THEN DRAWQUES$ = "N" 1440 IF DRAWQUES$ = "N" THEN NSD$ = "3" ELSE NSD$ = "2" 1450 RETURN 1460 : 1470 REM Open Files Routine 1480 OPEN "I",#1,TIPS$ 1490 OPEN "I",#2,RESULTS$ 1500 RETURN 1510 : 1520 REM Validate Results File Routine 1530 INPUT#2,RESREC$ 1540 CLOSE#2 1550 IF LEN(RESREC$) <> NOOFMATCHES% THEN ERRMESS$ = "Result File has an incorrect number of entries":GOSUB 1710 :REM Error Routine 1560 FOR X% = 1 TO NOOFMATCHES% 1570 T$ = MID$(RESREC$,X%,1) 1580 IF INSTR("123A",T$) <1 THEN ERRMESS$ = "Result File Contains an invalid character":GOSUB 1710 :REM Error Routine 1590 IF (DRAWQUES$ = "N") AND (T$ = "2") THEN MID$(RESREC$,X%,1) = "3" :T$ = "3" 1600 IF T$ = "1" THEN TOTHOMES% = TOTHOMES% +1 1610 IF T$ = "2" THEN TOTNSD% = TOTNSD% +1 1620 IF T$ = "3" THEN TOTDRAWS% = TOTDRAWS% +1 1630 IF T$ = "A" THEN TOTAWAYS% = TOTAWAYS% +1 1640 NEXT X% 1650 RETURN 1660 : 1670 REM Validate Tipsters File Routine 1680 IF LEN(TIPSREC$) <> NOOFMATCHES% +2 THEN ERRMESS$ = "Tipsters File has an incorrect number of entries":GOSUB 1710 :REM Error Routine 1690 RETURN 1700 : 1710 REM Error Routine 1720 CLS:GOSUB 6500 :REM Print Heading Routine 1730 TEXT$ = ERRMESS$ + " - Program Terminating":DOWN% = 17:GOSUB 5000 :REM Centre Text Routine 1740 GOSUB 6000 :REM Press Space Routine 1750 END 1760 RETURN 1770 : 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 9" 6520 DOWN% = 2:GOSUB 5000 : REM Centre Text Routine 6530 RETURN