1 REM ++++++++++++++++++++++++++++++++
2 REM ! Program .... L8RADER
3 REM ! Utg}va 1.0 83-06-30
4 REM ! av (c) TORDH JOHANSSON
7 REM ! Minne 16 Kbytes
8 REM ! Ins{nt av 666
9 REM ++++++++++++++++++++++++++++++++
10 REM
11 REM Screened by C R LERIN.
12 REM
100 ONERRORGOTO 100 : ; CHR$(12%) : ; 'Ant. enkelrader'; : INPUT R1%
105 ONERRORGOTO 105 : ; 'Ant. 8-raders'; : INPUT R2% : R%=R1%+R2%
110 ONERRORGOTO 110 : ; 'Ant. nummer'; : INPUT N%
115 N6%=N%-6% : N5%=N%-5% : N4%=N%-4% : N3%=N%-3% : N2%=N%-2% : N1%=N%-1%
120 DIM S%(R%,N%),V%(75%,3%),G%(40%,3%),T%(20%,3%),R$=N%+N%
125 FOR T=1 TO 1000 : NEXT T : ; CHR$(12%)
130 IF R1%>0% THEN ; 'Inmatning av enkelrader (2/1):' : ;
135 FOR X%=1% TO R%
140 IF X%>R1% AND [1%=0% THEN ; : ; : ; 'Och s}';R2%;' st. 8-raders:' : ; : [1%=1%
145 [%=0% : ; 'Rad';TAB(5-INT(LOG(X%)/LOG(10)));X%;
150 INPUT R$ : IF LEN(R$)<>N% THEN 145
155 FOR H%=1% TO LEN(R$)
160 IF MID$(R$,H%,1%)="2" THEN [%=[%+1%
165 NEXT H%
170 IF X%7% THEN 145
175 IF X%>R1% AND [%<>8% THEN 145
180 FOR Y%=1% TO N%
185 IF MID$(R$,Y%,1%)='2' THEN S%(X%,Y%)=1% ELSE S%(X%,Y%)=0%
190 NEXT Y% : NEXT X%
195 FOR T=1 TO 1000 : NEXT T
200 ; CHR$(12%)
205 OPEN 'PR:' ASFILE 1%
210 IF R1%>0% THEN ; #1%,'Inmatade enkelrader:' : ; #1%
215 FOR X%=1% TO R%
220 IF X%>R1% AND [2%=0% THEN ; #1% : ; #1%,'Inmatade 8-raders:' : ; #1% : [2%=1%
225 R$=''
230 FOR Y%=1% TO N%
235 IF N%<20% AND S%(X%,Y%)=1% THEN R$=R$+'X ' ELSE IF N%<20% AND S%(X%,Y%)=0% THEN R$=R$+'- '
240 IF N%>=20% AND S%(X%,Y%)=1% THEN R$=R$+'X' ELSE IF N%>=20% AND S%(X%,Y%)=0% THEN R$=R$+'-'
245 NEXT Y%
250 ; #1%,R$
255 NEXT X%
260 FOR A%=1% TO 3%
265 FOR T=1 TO 1000 : NEXT T
270 ; CHR$(12%)
275 ; #1% : ; #1% : ; #1%
280 ; #1%,' 7 6 5 Fall:'
285 ; #1%,' --------- ----'
290 FOR T=1 TO 1000 : NEXT T
295 IF A%=2% THEN 435 ELSE IF A%=3% THEN 560
300 FOR K1%=1% TO N6% : FOR K2%=K1%+1% TO N5% : FOR K3%=K2%+1% TO N4% : FOR K4%=K3%+1% TO N3% : FOR K5%=K4%+1% TO N2%
305 FOR K6%=K5%+1% TO N1% : FOR K7%=K6%+1% TO N%
310 ; CUR(1%,5%);K1%;K2%;K3%;K4%;K5%;K6%;K7%;' '
315 FOR Z%=1% TO 3% : V%(0%,Z%)=0% : NEXT Z%
320 FOR X%=1% TO R%
325 R0%=S%(X%,K1%)+S%(X%,K2%)+S%(X%,K3%)+S%(X%,K4%)+S%(X%,K5%)+S%(X%,K6%)+S%(X%,K7%)
330 IF R0%<5% THEN R0%=4%
335 V%(0%,R0%-4%)=V%(0%,R0%-4%)+1%
340 IF X%>R1% AND R0%=7% THEN V%(0%,2%)=V%(0%,2%)+7%
345 IF X%>R1% AND R0%=6% THEN V%(0%,2%)=V%(0%,2%)+1% : V%(0%,1%)=V%(0%,1%)+6%
350 IF X%>R1% AND R0%=5% THEN V%(0%,1%)=V%(0%,1%)+2%
355 NEXT X%
360 FOR I%=1% TO 75% : IF V%(I%,0%)=0% THEN 390
365 FOR X%=1% TO 3% : IF V%(0%,X%)<>V%(I%,X%) THEN 380
370 NEXT X%
375 V%(I%,0%)=V%(I%,0%)+1% : GOTO 395
380 NEXT I%
385 ; #1%,'#####' : GOTO 410
390 FOR X%=1% TO 3% : V%(I%,X%)=V%(0%,X%) : NEXT X% : GOTO 375
395 NEXT K7% : NEXT K6% : NEXT K5% : NEXT K4% : NEXT K3% : NEXT K2% : NEXT K1%
400 ; : ; : ; TAB(6%);'Garantitabell? SIFFRA';
405 ONERRORGOTO 405 : INPUT W%
410 FOR X%=1% TO 75% : FOR Y%=3% TO 0% STEP -1%
415 IF V%(X%,0%)=0% THEN 680
420 ; #1%,V%(X%,Y%);' '; : NEXT Y%
425 ; #1%
430 NEXT X%
435 FOR K1%=1% TO N5% : FOR K2%=K1%+1% TO N4% : FOR K3%=K2%+1% TO N3% : FOR K4%=K3%+1% TO N2% : FOR K5%=K4%+1% TO N1%
440 FOR K6%=K5%+1% TO N%
445 ; CUR(1%,5%);K1%;K2%;K3%;K4%;K5%;K6%;' '
450 FOR Z%=1% TO 3% : G%(0%,Z%)=0% : NEXT Z% : FOR X%=1% TO R%
455 R0%=S%(X%,K1%)+S%(X%,K2%)+S%(X%,K3%)+S%(X%,K4%)+S%(X%,K5%)+S%(X%,K6%)
460 IF R0%<5% THEN R0%=4%
465 G%(0%,R0%-4%)=G%(0%,R0%-4%)+1%
470 IF X%>R1% AND R0%=6% THEN G%(0%,2%)=G%(0%,2%)+1% : G%(0%,1%)=G%(0%,1%)+6%
475 IF X%>R1% AND R0%=5% THEN G%(0%,1%)=G%(0%,1%)+2%
480 NEXT X%
485 FOR I%=1% TO 40% : IF G%(I%,0%)=0% THEN 515
490 FOR X%=1% TO 3% : IF G%(0%,X%)<>G%(I%,X%) THEN 505
495 NEXT X%
500 G%(I%,0%)=G%(I%,0%)+1% : GOTO 520
505 NEXT I%
510 ; #1%,'#####' : GOTO 535
515 FOR X%=1% TO 3% : G%(I%,X%)=G%(0%,X%) : NEXT X% : GOTO 500
520 NEXT K6% : NEXT K5% : NEXT K4% : NEXT K3% : NEXT K2% : NEXT K1%
525 ; : ; : ; TAB(6%);'Garantitabell? SIFFRA';
530 ONERRORGOTO 530 : INPUT W%
535 FOR X%=1% TO 40% : FOR Y%=3% TO 0% STEP -1%
540 IF G%(X%,0%)=0% THEN 680
545 ; #1%,G%(X%,Y%);' '; : NEXT Y%
550 ; #1%
555 NEXT X%
560 FOR K1%=1% TO N4% : FOR K2%=K1%+1% TO N3% : FOR K3%=K2%+1% TO N2% : FOR K4%=K3%+1% TO N1% : FOR K5%=K4%+1% TO N%
565 ; CUR(1%,5%);K1%;K2%;K3%;K4%;K5%;' '
570 FOR Z%=1% TO 3% : T%(0%,Z%)=0% : NEXT Z% : FOR X%=1% TO R%
575 R0%=S%(X%,K1%)+S%(X%,K2%)+S%(X%,K3%)+S%(X%,K4%)+S%(X%,K5%)
580 IF R0%<5% THEN R0%=4%
585 T%(0%,R0%-4%)=T%(0%,R0%-4%)+1%
590 IF X%>R1% AND R0%=5% THEN T%(0%,1%)=T%(0%,1%)+2%
595 NEXT X%
600 FOR I%=1% TO 20% : IF T%(I%,0%)=0% THEN 630
605 FOR X%=1% TO 3% : IF T%(0%,X%)<>T%(I%,X%) THEN 620
610 NEXT X%
615 T%(I%,0%)=T%(I%,0%)+1% : GOTO 635
620 NEXT I%
625 ; #1%,'#####' : GOTO 650
630 FOR X%=1% TO 3% : T%(I%,X%)=T%(0%,X%) : NEXT X% : GOTO 615
635 NEXT K5% : NEXT K4% : NEXT K3% : NEXT K2% : NEXT K1%
640 ; : ; : ; TAB(6%);'Garantitabell? SIFFRA';
645 ONERRORGOTO 645 : INPUT W%
650 FOR X%=1% TO 20% : FOR Y%=3% TO 0% STEP -1%
655 IF T%(X%,0%)=0% THEN 675
660 ; #1%,T%(X%,Y%);' '; : NEXT Y%
665 ; #1%
670 NEXT X%
675 ; : ; CUR(7%,6%);'Siffertips-' : ; CUR(8%,6%);'Jokke.'
680 ; : IF A%<3% THEN ; '"CTRL+C" = stop! Forts{ttning? SIFFRA';
685 ONERRORGOTO 685 : IF A%<3% THEN INPUT C%
690 NEXT A%
695 CLOSE 1%