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!