Sharp PC1360 |
Im Folgenden finden Sie das Listing zum Würfelspiel "Kniffel".
Javascriptprogramm
Dokumentation ansehen
Programmspeicher-Image laden
10 | "1"DATA "FC0201010101C1C10101010102FC","0F1020202020202020202020100F" |
20 | "2"DATA "FC020101010101010119190102FC","0F1020262620202020202020100F" |
30 | "3"DATA "FC0201191901C1C10101010102FC","0F1020202020202020262620100F" |
40 | "4"DATA "FC020119190101010119190102FC","0F1020262620202020262620100F" |
50 | "5"DATA "FC0201191901C1C10119190102FC","0F1020262620202020262620100F" |
60 | "6"DATA "FC0201D9D901010101D9D90102FC","0F1020262620202020262620100F" |
70 | "K"RANDOM :CLS :WAIT 0:CLEAR F,A,B,C,D,E,W,Z,Q,P,O |
80 | PRINT "***** KNIFFEL ***** |
90 | INPUT "Spielerzahl : ";S |
100 | ERASE W$,Z$,P,SA,S$,B,A |
110 | DIM W$(5,1)*28,Z$(S,1)*20,P(S),S$(S)*2,B(S),SA(4) |
120 | CLS |
130 | FOR J=1 TO S |
140 | CURSOR 0,0 |
150 | Z$(J,0)=" 1 2 3 4 5 6 " |
160 | Z$(J,1)="DP VP FH KS GS KN CH" |
170 | PRINT "Spieler ";STR$ J:INPUT "Monogramm : ";S$(J) |
180 | NEXT J |
185 | FOR I=0 TO 5:RESTORE STR$ (I+1):READ W$(I,0),W$(I,1):NEXT I |
190 | CLS |
200 | FOR I=1 TO 13 |
210 | FOR J=1 TO S |
220 | PRINT Z$(J,0);" ";S$(J) |
230 | PRINT Z$(J,1) |
240 | LINE (132,0)-(132,10):LINE (133,10)-(149,10) |
250 | CURSOR (24-LEN STR$ B(J)),2:PRINT STR$ B(J) |
260 | CURSOR (24-LEN STR$ P(J)),3:PRINT STR$ P(J) |
270 | FOR N=1 TO 5 |
280 | A(N)=RND 6 |
290 | NEXT N |
300 | FOR N=1 TO 5 |
330 | GCURSOR (N*21-11,25):GPRINT W$(A(N)-1,0) |
350 | GCURSOR (N*21-11,33):GPRINT W$(A(N)-1,1) |
370 | NEXT N |
380 | IF Z=2 CLEAR Z:GOTO 490 |
390 | T$=INKEY$ :IF T$=""GOTO 390 |
400 | U=VAL T$ |
410 | IF ASC T$<>13 AND (U=0 OR U>5)BEEP 1,200,100:GOTO 390 |
420 | BEEP 1,1,150 |
430 | IF ASC T$=13 GOTO 470 |
440 | N=U |
445 | W=1:SA(N-1)=NOT SA(N-1)+2 |
446 | IF SA(N-1) GCURSOR (N*21-15,27):GPRINT "7C3810":GOTO 390 |
450 | GCURSOR (N*21-15,27):GPRINT "000000":GOTO 390 |
452 | FOR L=1 TO 5:IF SA(L-1) LET A(L)=RND 6:SA(L-1)=0:LINE (L*21-15,32)-(L*21+3,18),R,BF |
460 | NEXT L:RETURN |
470 | Z=Z+1 |
480 | IF W CLEAR W:GOSUB 452 :GOTO 300 |
490 | CLEAR Z,W,X$ |
510 | CURSOR 18,3 |
520 | INPUT X$ |
530 | Y=VAL X$ |
540 | IF Y>6 GOTO 730 |
550 | IF Y=0 GOTO 660 |
560 | IF MID$ (Z$(J,0),Y*3,1)="-" GOTO 730 |
570 | Z$(J,0)=LEFT$ (Z$(J,0),Y*3-1)+"-"+RIGHT$ (Z$(J,0),20-Y*3) |
580 | FOR N=1 TO 5 |
590 | IF A(N)=Y LET Q=Q+Y |
600 | NEXT N |
610 | B(J)=B(J)+Q-3*Y |
620 | P(J)=P(J)+Q |
630 | CLEAR Q |
640 | IF Z$(J,0)=" - - - - - - "AND B(J)>=0 LET P(J)=P(J)+35 |
650 | GOTO 780 |
660 | IF X$="DP" LET M=1:GOTO 740 |
670 | IF X$="VP" LET M=4:GOTO 740 |
680 | IF X$="FH" LET M=7:GOTO 740 |
690 | IF X$="KS" LET M=10:GOTO 740 |
700 | IF X$="GS" LET M=13:GOTO 740 |
710 | IF X$="KN" LET M=16:GOTO 740 |
720 | IF X$="CH" LET M=19:GOTO 740 |
730 | BEEP 1,200,100:GOTO 510 |
740 | IF MID$ (Z$(J,1),M,2)="--" GOTO 730 |
750 | GOSUB X$ |
760 | IF V CLEAR V:GOTO 730 |
770 | Z$(J,1)=LEFT$ (Z$(J,1),M-1)+"--"+RIGHT$ (Z$(J,1),19-M) |
780 | CLS :NEXT J |
790 | NEXT I |
800 | CLS :PRINT =LPRINT |
820 | FOR J=1 TO S |
830 | PRINT S$(J);" : ";STR$ P(J);" Punkte" |
840 | IF INT (J/3)=J/3 OR J=S WAIT :PRINT "<ENTER>":WAIT 0:CLS |
850 | IF P(J)>P LET O=J:P=P(J) |
860 | IF P(J)>H LET H=P(J):G$=S$(J)+STR$ H |
870 | NEXT J |
880 | CLS |
890 | PRINT "Sieger:":PRINT S$(O);" mit ";STR$ P;" Punkten" |
910 | PRINT "Highscore: ":WAIT :PRINT LEFT$ (G$,2);" mit ";RIGHT$ (G$,3);" Punkten" |
920 | END |
930 | "DP" IF A=B AND A=C OR (A=B AND A=D) OR (A=B AND A=E) OR (A=C AND A=D) OR (A=C AND A=E) GOTO 960 |
940 | IF A=D AND A=E OR (B=C AND B=D) OR (B=C AND B=E) OR (B=D AND B=E) OR (C=D AND D=E) GOTO 960 |
950 | RETURN |
960 | FOR N=1 TO 5:P(J)=P(J)+A(N):NEXT N |
970 | RETURN |
980 | "VP" IF A=B AND A=C AND A=D OR (A=B AND A=C AND A=E) OR (A=B AND A=D AND A=E) GOTO 960 |
990 | IF A=C AND A=D AND A=E OR (B=C AND B=D AND B=E) GOTO 960 |
1000 | RETURN |
1010 | "FH" GOSUB 1330 :IF K AND V RETURN |
1020 | CLEAR V |
1030 | IF K GOTO 1090 |
1040 | IF A=B AND A=C AND D=E OR (A=B AND A=D AND C=E) OR (A=B AND A=E AND C=D) GOTO 1090 |
1050 | IF A=C AND A=D AND B=E OR (A=C AND A=E AND B=D) OR (A=D AND A=E AND B=C) GOTO 1090 |
1060 | IF B=C AND B=D AND A=E OR (B=C AND B=E AND A=D) OR (B=D AND B=E AND A=C) GOTO 1090 |
1070 | IF C=D AND C=E AND A=B GOTO 1090 |
1080 | RETURN |
1090 | P(J)=P(J)+25:RETURN |
1100 | "KS" GOSUB 1330 :IF K AND V RETURN |
1110 | CLEAR V |
1120 | IF K GOTO 1150 |
1130 | GOSUB 1290 |
1140 | IF L<3 RETURN |
1150 | P(J)=P(J)+30:CLEAR V:RETURN |
1160 | "GS" GOSUB 1330 :IF K AND V RETURN |
1170 | CLEAR V |
1180 | IF K GOTO 1210 |
1190 | GOSUB 1290 |
1200 | IF L<4 RETURN |
1210 | P(J)=P(J)+40:RETURN |
1220 | "KN" GOSUB 1330 |
1230 | CLEAR V |
1240 | IF K LET P(J)=P(J)+50 |
1250 | RETURN |
1260 | "CH" FOR N=1 TO 5 |
1270 | P(J)=P(J)+A(N) |
1280 | NEXT N |
1290 | CLEAR L |
1300 | L=(ABS (A-B)=1)+(ABS (A-C)=1)+(ABS (A-D)=1)+(ABS (A-E)=1)+(ABS (B-C)=1)+(ABS (B-D)=1) |
1310 | L=L+(ABS (B-E)=1)+(ABS (C-D)=1)+(ABS (C-E)=1)+(ABS (D-E)=1) |
1315 | L=L-(A=B)-(A=C)-(A=D)-(A=E)-(B=C)-(B=D)-(B=E)-(C=D)-(C=E)-(D=E) |
1320 | RETURN |
1330 | CLEAR K:IF A=B AND A=C AND A=D AND A=E LET K=1 |
1340 | IF MID$ (Z$(J,0),A*3,1)<>"-"OR MID$ (Z$(J,1),16,2)<>"--" LET V=1 |
1350 | RETURN |
Javascriptprogramm
Dokumentation ansehen
Programmspeicher-Image laden
![]() |
Falls diese Seite ohne Navigationsleiste angezeigt wird, aktivieren Sie Javascript oder klicken Sie hier!