10 REM ****************************** **************************** 20 REM ** KLAVERJAS Score Programma Versie 2 80 Kolommen ** 30 REM ** C.A.Burger Rotterdam (c) 1988 SONY 700 MSX 2 ** 40 REM ****************************** **************************** 50 REM Dit programma kan voor elke sp el competitie met puntentelling gebr u i k t 60 REM worden voor de hoogste of de laagste punten (bijv. Jokeren). 70 REM De sortering kan namelijk ook veranderd worden voor de laagste punt en 80 REM ais het => teken in de sorteri nq wordt veranderd in =< 90 ' 100 CLOSE:SCREEN0:CLS:KEY 0FF:WIDTH S 0 110 ON ERROR GOTO 2920 120 COLOR 1,12 130 F'OKE&HFCAB,?(HFF: OUT 170 , INP (170) AN D191: 'HOOFDLETTERS+CAPSLAMF'JE 140 CLEAR 3000 150 '*** DIMENSIONEREN Ni = AANTAL LE DEN / Bi =MAANDEN ARREY *** 160 DIM Ni(50): ' N$(50)=Max 50 leden Ni(80)=Ma>: 80 leden enz. 170 DIM Bi (12):' 12 MAANDEN 180 VE=0:Di="GEEN DATUM INGEVOERD":GO TO 270 190 '************************ STOPPEN ******************************* 200 CLS:PRINT"IS LEDENBESTAND WEGGESC HREVEN ??":PR INT:PR INT"ZEKER NETEN J /N" 210 JNi=INKEYi:IF JNi=""THEN210 220 IF JNi ="J"0R JN$ = "j"THEN RETURN E LSE 260 230 JNi=INKEYt:IFJNi=""THEN230 240 IF JNt ="J"ORJNt ="j"THEN260ELSE250 250 CLS:COLOR 15,4,4:ST0P STOP:KEY ON :PR INT"TOT DE VOLGENDE KEER":END 260 CLS:COLOR 15,1,1:VE=0 270 CLS: COLOR 1, i2: F'RINTTAB < 18) " 11 280 PRINTTAB(18)" KEUZEMENU KLAVERJ AS SCOREF'ROGRAMMA " 290 PRINTTAB(18)" 300 PRINTTAB(18)" I! 310 PRINTTAB(18)" DATUM: TIJD: 320 PRINTTAB(18)" ":PRINT 330 PRINTTAB(12)"1 = SPEELDATUM INVOE REN 2= LEDEN BESTAND LADEN" 348 PRINT 350 PRINTTAB(12)"3 = LEDEN BESTAND SA VEN 4= BESTAND PRINTEN" 368 PRINT 370 PRINTTAB(12)"5 = NIEUW BESTAND IN VOEREN 6= LEDEN VERWERKEN" 380 PRINT 390 PRINTTAB(12)"7 = SORTEREN 8= LEDEN VERWIJDEREN" 400 PRINT 410 PRINTTAB(12)"9 = REKENEN --------ST OPPEN " 428 PRINT 430 PRINTTAB(9) " II 440 PRINTTAB(9)" INGEVOERDE SPEE LDATUH: II 450 PRINTTAB(9)" II 460 PRINTTAB(9)" LEDEN IN GE HEUGEN PRINTER IS I! II 470 PRINTTAB(9)" II 480 IF(INF(&H90)AND2)=2THEN LOCATE 55 ,20:PR INT"UIT"ELSE LOCATE 55,20:PR I NT "AAN" 490 IF 11=<1 THEN LOCATE 13,20:PRINT"0 "ELSE LOCATE13,20:PRINT 11-1 500 LOCATE 40,18 ;PRINT Di 510 ON STOP GOSUB2820:STOP 0N:0N ERRO R 6ÜTO2920 520 L0CATE9,22:PRINT" DRUK HET CYFER II 530 Ti = "":6ET TIMETi:L0CATE46,4:PRINT Ti 540 Qi = "":GET DATEQi:L0CATE28,4:PRINT Q{ 550 FORQ=1TO300:NEXT:L0CATE9522:PRINT " ":FOR B=1TO300:NEXT 560 ' ******************** MENU AFVRA AS ********************* 57» A$=INKEY$:IF A $ ="" T H E N 480 580 ON VAL(A$)GOTO 2260,910,1470,610, 750,1160,1830,720 ,2320 590 GOTO 270 600 ' ******************** PRINT ROUT INE ******************** 610 CLS:COLOR1 ,12 620 IF11=<1THEN260 630 PRINTSPC (8) 11 !! 640 PRINTSPC(8)" KLAVERJAS SCORE PRO GRAMMA Versie 2 * PRINTEN * H 650 PRINTSPC(8)" H 660 PRINT:PRINTSPC(9)" AFDRUKKEN OP S CHERM OF OP PRINTER --> DRUK LETTER ":PRINT 670 PRINTSPC(9)"SCHERM = IS). PRINTER = (P). MENU = iMi. " 680 SP$=INKEY$:IF SP$ =""THEN6S0 690 IF SP$="S"QRSP$="s"THEN1960 700 IF SP$="P"ORSP$="p"THEN2080 710 IF SP$="M"ORSP$="m"THEN 260 ELSE6 70 720 V E = 1:IFI1 = <1THENSOTO 260ELSE1970: '*** VERWIJDEREN *** 730 740 '********************* NIEUW BEST AND INVOEREN *********************** 750 CLS 760 PRINTSPC(8)" 770 PRINTSPC(8)" KLAVERJAS SCORE PRO GRAMMA versie 2 * NIEUW BESTAND * U 780 PRINTSPC(8) " 790 PRINT 800 IF 11 = >1THENC0L0R,8:PRINT"------ -->> PAS OP ! ! ! -------->> NIEUW BES TAND WIST BESTAND IN GEHEUGEN" 810 PR INT:PR INT 820 PR INT" WILT U EEN NIEUW BESTAND IN VOEREN J/N" 830 JNt = INKEY$:IFJNf=" "THENS30 840 IFJN$="N"THEN260ELSE850 850 11=1 860 CLS:COLOR1,12:PRINTSPC (8)"------- -------------> BESTAND INVOEREN <----- 870 PRINT:PRINTSPC(20)"JA = (J) NEE = " 880 GOTO 1220 890 1 900 '************************ BESTAND INLADEN ************************ 910 CLS:PRINTSPC(8) " 920 PRINTSPC(8)" KLAVERJAS SCORE PROGRAMMA versie 2 * LADEN BESTAND * 11 930 PRINTSPC(8)" 940 PRINT:PRINT:PRINT" ZET LEDEN BE STAND IN CASSETTERECORDER OF DISKDRIV E EN DRUK EEN LETTER":PRINT 950 PRINT 960 PRINT " LADEN VAN CASSETTE =( C 1. LADEN VAN DISK = ( D ). MENU = ( M 5 . " 970 CD$ = INKEY$:IFCD$=""THEN970 980 IF CD$ ="C"ORCD$ ="c"THEN 1010 990 IF CD$="D"ORCD$="d"THEN 1040 1 000 IF CD$="M"ORCD$ = "ni"THEN 260ELSE9 60 1010 CLS:LOCATE9,20:PRINT" KLAVERJASB ESTAND WORDT NU GELADEN I!!" 1020 OPEN "CAS:KLAVB" FOR INPUT AS#1: ' ******** CASSETTE INLADEN ******** 1030 GOTO1060 1040 CLS:L0CATE9,20:PRINT" KLAVERJASB ESTAND WORDT NU GELADEN !!!" 1050 OPEN "A:KLAVBEST" FOR INPUT AS#i :'#****** DISKETTE INLADEN ******** 1060 1=1 1070 IF EOF {1) THEN GOTO 1130 1080 INPUT #1,N*(I) 1090 IF N$ (I)="" THEN GOTO 1130 1100 1=1+1 1110 IF I>50 THEN STOP 1120 GOTO 1070 1130 CLOSE# 1:11 = I 1140 GOTO 260 1150 ' ************************* LEDE N VERWERKEN ********************* 1160 CLS:COLOR1,12 1170 PRINTSPC(8)" 1180 PRINTSPC <8) " KLAVERJAS SCORE PR OGRAMMA Versie 2 * LEDEN VERWERKEN * fi 1190 PRINTSPC(8) " 1200 IF I1=<1THEN260 1210 PRINT:PRINTSPC < 2 0)"JA = (J) NE E = (N) MENU = (Mi" 1220 JN$="":PRINT:PRINTSPC(20)"AANTAL LEDEN "; 11 -1 :PRINT 1230 PRINTSPC(20)"LEDEN TOEVOEGEN J/N /M" :F'RINT 1240 JN$=INKEY$:IFJN$=""THEN1240 1250 IF JN$="J"ORJN$="j"THEN GOSUB 17 00:GOTO 1220 1260 IF J N $ =" N" O F; J N $ =" n" T H E N 12B0 1270 IF JNt ="M"ORJN* = "«ï"THEN260ELSE12 30 1280 X=0 1 290 X = X +1:IF X = I1 THEN 260 1300 N$=LEFT*(N$(X),20! 1310 A = V A L (MID $ (N $ i X ),21,3)) 1320 OS = VAL(MID$(N$ (X) ,24,7)) 1330 PNT=VAL(MIDf(N$(X),31,7)) 1340 PRINT:PRINT" NAAM : "jN$ 1350 'PRINT "AANTAL : "; A: '=aantal keren gespeeld als nodig rem weghale n 1360 PRINT" OUD E STAND : "; OS 1370 PRINT" PUN TEN LAATST : ";PNT 1380 PRINT" LAA TSTE STAND : 11; OS + F'NT 1390 INPUT" INVOEREN NIE UWE PUNTEN : 11; NWF' 1400 IF NWF' < 0ORNWP>99999 ! THEN PRINT "VERKEERDE WAARDE MIN.1 MAX.99999 i i \ ":GOTO 1390 1410 INPUT" INGEVOERDE PUNTEN ÜK (J/N! ";JNt 1420 IF JN$="J"ÜRJN$="j"THEN 1430 ELS E 1300 1430 OS=OS+PNT 1440 PNT = NWP 1450 A=A+1:GOSUB 1780 1460 GOTO 1290 1470 CLS:IFI1=<1THEN260 1480 PRINTSPC(9)" H 1490 PRINTSPC(9)" KLAVERJAS SCORE PR OGRAMMA versie 2 * SAVEN BESTAND * i! 1500 PRINTSPC(9)" ":PR INT:PR INT 1510 PRINTSPC(5)"STAAT CASSETTERECORD ER OF DISKDRIVE GEREED ? DRUK DAN DE LETTER" 1520 PRINT:PRINT 1530 PRINTSPC(5)"SAVEN NAAR CASSETTE = (C) NAAR DISK = (D) MENU = (M)" 1540 CD$=INKEY$:IFCD$=""THEN1540 1550 IF CD$ ="C"0RCD$ ="c"THEN 1580 1560 IF CD$="D"ORCD$="d"THEN 1610 1570 IF CD$="M"OR CD$="m"THEN260ELSEl 530 1580 CLS:L0CATE2,20:PR INT"KLAVERJASBE STAND WORDT NU GESAVED ! ! ! 11 1590 OPEN "CAS:KLAVB"FÜR OUTPUT AS# 1 1600 GOTO 1630 1610 CLS:L0CATE2,20:PRINT"KLAVERJASBE STAND WORDT NU GESAVED !!I " 1620 OPEN "A:KLAVBEST" FOR OUTPUT AS# 1 1630 1 = 1 : IF N$ (I) ="" THEN 1680 1640 IF 1=11 THEN 1680 1650 PRINTttl ,N$ (15 1660 1=1+1 1670 IF I>50 THEN 1680 ELSE 1640 1680 CLOSE#1 1690 GOTO 260 1700 INPUT " NAAM ";N$:N$ = N$ + STRINGt(20-LEN(N$) , H 11 j 1710 'INPUT " AANTAL ";A:'als nodig rem weghalen 1720 INPUT " OUDE ST ";OS 1730 INPUT " PUNTEN ";PNT 1740 X = 1 1 :GOSUB 1780: 1 1 = 1 1 + 1 1750 IF 11 >50 THEN PRINT "Te veel led en in het bestand DIM waarde Ni vergr oten ":F0R X = 1TOi000:NEXTX:GOTO 270 1760 RETURN 1770 REM *** SUBROUTINE *** 1780 P$ = STR$(A):P$ = P$ + STRING$(3-LEN(P i) ,11 ") 1790 Ni (X)=N$+Pi 1800 Pi=STR$(OS):Pi=Pi+STRINGf<7-LEN < Pi) , " ") :Ni(X i =Ni ( X) +F'i 1810 Pi=STRi(PNT):Pi=Pi+STRINSi(7-LEN (Pi)," ") : Ni(X 5 =NiiX)+Pi 1820 RETURN 1830 REM *********************** SORT ER ING *********************** 1840 CLS:COLORi,12:LOCATE2,20:PRINT"S ORTEREN EVEN GEDULD AUB" 1850 A =11-1 1860 X=1:SWP=0 1870 X = X +1 : IF X>A THEN 1940 1880 DZ=VAL(MIDi(N$(X-l),24,7))+VAL(M IDt(Ni(X-l),31,7!5 1890 DA = VAL(MIDi(Ni(X),24,7))+ VAL (MID i < Ni < X),31,7)) 1900 ÏF DZ=> DA THEN 1870 1910 SWAP Ni(X-l),Ni(X) 1920 SWP=i 1930 GOTO 1870 1940 A=A-1: IF SWP = 1 THEN 1860 1950 GOTO 260 1960 REM ****************** PRINTEN B EELDSCHERM ****************** 1970 CLS: A = 11 - 1 1980 FOR X = 1TOA 1990 PRINT USÏNG"## ";X ;:PRINT LEFTi (Nt(X),20); 2000 DZ = VAL(MIDi(Ni(X >,24,6))+VAL (MID i < N i < X),30,6)) 2010 PRINT USING"#######";DZ 2020 NEXT 2030 IFVE=0THEN PRINT" TERUG NAAR ME NU=M":ELSE PRINT" TERUG NAAR MENU=M VERWIJDEREN =V " 2040 MVi=INKEYi: IFMVt = " "THEN2040 2050 IF MVi ="M"ORMVi = "in"THEN 260 2060 IF MVi ="V"ORMVi ="v"THEN2680 ELSE 2030 2070 2080 REM ************************ PRI NTEN PAPIER ************************* 2090 ' PRINTERCODE VOOR SEIKOSHA SL 80 A i 2100 OLS;IF(INP(&H90)AND2)=2THENC0L0R 1,8:LOCATE0,12:PRINT" GEEN PRINTER A ANGESLOTEN !l":FOR Q=1TO1500:NEXT:CLS :GÜT027 0 2110 CLS:A = 11 - 1 2120 LOCATE0,12:PRINT"BESTAND WORDT U IT6EPRINT EVEN GEDULD AUB" 2130 LPRINT CHRi(27);CHR$(14);"KLAVER JASCOMPETITIE ";Di 2140 LPRINT:LPRINT 2150 LPRINT 2160 FOR X=1T0A 2170 LPRINT USING"## ";X;:LPRINT LEFT i(N$(X) ,20); 2180 DZ=VAL(MIDt(Ni(X),24,6))+VAL(MID i ! N $ (X) , 3 0,6 5 ) 2190 LPRINT USING"#######";DZ 2200 LPRINT 2210 NEXT X 2220 GOTO 260 2230 PRINT"STOPPEN J/N 9 ii 2240 JNi=INKEYi:IFJNi=" "THEN2 2250 IF JNi="J"ORJNt="j "THEN 260 2260 CLS:PRINTSPC (6) " ii 2270 PRINT8PC(6)" KLAVERJAS SCORE PR OGRAMMA versie 2 * SPEELDATUM INVOE REN * " 2280 PRINTSPC(6)" ":PRINT:PRINT 2290 PRINTSPC(9)"VOER SPEELDAIUM IN. HUIDIGE DATUM IS:" 2300 PRINTSPC(95"": PRINT:GOSUB2830:PRINT:PRINT:INPUTDi 2310 GOTO 260 2320 '******************** REKENEN-DI SKMENU-STOP ******************* 2330 CLS 2340 PRINTSPC (8) " u 2350 PRINTSPC(8) " KLAVERJAS SCORE PR OGRAMMA * REKENEN-5TGP * ii 2360 PRINTSPC(8)" 2370 PRINT:PRINT 2380 PRINT" OPTELLEN = (0) AFTFl EKKEN = < A) MENU = (M5 STOP = (Si" 2390 PRINT:PRINT" DRUK DE GEKOZE N OPTIE !I" 2400 0A$= INKEYf:IF 0A$=""THEN2400 2410 IF 0A$="0"QR0A$="o"THEN 2450 2420 IF OA$="A"OROA$="a"THEN2560 2430 IFOAf ="M" ORuA$ ="(D"THEN260 2440 IFOA$="S"OROAf="s"THEN GOSUB 200 :GOTO 250 2450 CLS:PRINT"**** > OPTELLEN < *** *":PRINT:PRINT 2460 E*B:F=0:INPUT" VOER EERSTE GETAL IN*;E 2470 INPUT" VOER TWEEDE GETAL IN " j F 2480 G=E+F:PRINT 2490 BEEF': BEEF: PRINT" HET ANTWÜÜ RD IS"G 2500 PRINT:PR INT:PRINT 2510 PRINT" TERUG NAAR MENU J/N ?" 2520 PRINT 2530 J N $=INKEV$:IFJN$=""THEN2530 2540 IF JN$="J"ORJN$="j"THEN 260 2550 IFJN$="N"ORJN$="n"THEN2460ELSE25 30 2560 CLS:PRINT"**** > AFTREKKEN < * ***":PRINT 2570 H = 0:1=0:INPUT" VOER EERSTE G ETAL IN*;H 2580 INPUT" VOER TWEEDE GETAL IN" ;i 2590 K=H-I:PRINT 2600 BEEF': BEEF': PRINT" HET ANTWOO RD IS "K 2610 PRINT:PR INT:PR INT 2620 PRINT" TERUG NAAR MENU J/N ?" 2630 PRINT 2640 JN$ = INKEY$:IFJN$=""THEN2640 2650 IF JN$="J"ORJN$="j"THEN 260 2660 IF JNt="N"QRJN$="n"THEN2570EL5E2 640 2670 REM 2680 REM ******************** LEDEN V ERW IJ DEREN ************************* 2690 REM 2700 INPUT "WELK LID NR.VERWIJDEREN"; NR 2710 IF NR = 0 THEN260 2720 IF NR<1 OR NR>11 -1 THEN 2780 2730 A1 = 11 - 1 2740 IF NR=A1 THEN 2770 2758 FOR X1=NR TO Al-1 2760 N$(X i)=N$(X1 +1):NEXT 2770 11=11-1 2780 CLS:L0CATE2,12:PRINT"LID NUMMER" ;NR;"IS NU VERWIJDERD ! 2798 FOR X=1 TO 880 2880 NEXTX 2810 GOTO 268 2820 RETURN 2830 REM ******************** DATUM B EF'ALEH **************************** 2840 F0RX=1T012:READ Bf(X):NEXT X 2850 GETDATEA$:B$=A$:C$=A$:B$=MID$iB$ ,4,2):A=VAL(A$):A$=STR$iA) 2860 B$=LEFT$(Bf,2):B=VAL(Bf) 2870 F O R' X = 1T 012: IFX=BTHENB$=B$ (X) ELSE NEXT 2880 C$=RIGHT$(C$,2):A$=A$+" "+B$+" 1 9" +C$ 2890 L0CATE52, 6:PRINTAf 2980 RESTORE:RETURN 2910 DATA "Januari","Februari","Maart ", "April","Mei","Juni","Juli","August us", "September","Oktober","November", "December" 2920 REM ******************** ERROR R OUT INE **************************** 2930 CLS:COLOR 1,8,8 2940 IF ERR=70 OR ERR=53 THEN CLS:LOC ATE 10,12:PRINT"PLAATS DE ONTBREKENDE DISKETTE SVP":FOR X=1TO1500:NEXTX:RE SIJME 270 2950 IF ERR=6S THEN CLS:LQCATE 18,12: F'RINT"VERWEIDER SCHRIJF BEVEILIGING S VP":FOR X = 1TO 1500:NEXTX:RÉSUMÉ 270