Sharp PC1360 |
Javascriptprogramm
Dokumentation ansehen
Programmspeicher-Image laden
10 | DATA 16,29,-100,-175,36,29,100,-175,49,16,200,0,36,3,100,175,16,3,-100,175,3,16 | |
20 | DATA -200,0 | |
30 | DATA "HEXAGON - SPIELREGELN :","Man muss abwechselnd mit" | |
40 | DATA "dem Computer 2 von 6","Punkten mit einer Linie" | |
50 | DATA "verbinden. Wer beginnt","wird ausgelost." | |
60 | DATA "Verlierer ist, wer als","erster mit seinen Linien" | |
70 | DATA "ein Dreieck bilden muss.","Zusaetzlich zum Display" | |
80 | DATA "kann das Bild auf Plot-","ter gezeichnet werden." | |
90 | DATA "Auf dem Display zeichnet","der Computer punktierte" | |
100 | DATA "und auf dem Plotter","gruene Linien, die des" | |
110 | DATA "Spielers sind durchgezo-","gen bzw. rot." | |
120 | DATA "Die Eingabe der zu ver-","bindenden Punkte erfolgt" | |
130 | DATA "mit den Zifferntasten","1 bis 6 oder den Cursor-" | |
140 | DATA "Auf/Ab-Tasten.","VIEL SPASS !!!" | |
150 | "H"CLS :WAIT 0:CLEAR | |
160 | LINE (16,29)-(36,29):LINE -(49,16):LINE -(36,3):LINE -(16,3):LINE -(3,16):LINE -(16,29) | |
170 | CURSOR 4,1:PRINT "HEXAGON":CURSOR 9,3:PRINT "Bitte warten !" | |
180 | DIM L(14,4),P(5,1),I(5,5),K(5,3),T$(0)*13,S$(0)*24 | |
190 | FOR I=0 TO 4:L(I,0)=0:L(I,1)=I+1:NEXT I | |
200 | FOR I=5 TO 8:L(I,0)=1:L(I,1)=I-3:NEXT I | |
210 | FOR I=9 TO 11:L(I,0)=2:L(I,1)=I-6:NEXT I | |
220 | FOR I=12 TO 13:L(I,0)=3:L(I,1)=I-8:NEXT I | |
230 | L(14,0)=4:L(14,1)=5 | |
240 | FOR I=0 TO 4:FOR J=I+1 TO 5:I(I,J)=Z:I(J,I)=Z:Z=Z+1:NEXT J:NEXT I | |
250 | RESTORE 10 :FOR I=0 TO 5:FOR J=0 TO 3:READ K(I,J):NEXT J:NEXT I | |
260 | CLS :GOSUB 1210 | |
270 | CURSOR 10,2:PRINT "Spieler:":CURSOR 10,3:INPUT T$(0):CURSOR 10,3:PRINT " | " |
280 | T$="":CURSOR 10,2:PRINT "Spielregeln ?":CURSOR 10,3:INPUT " | |
290 | IF T$="J" GOSUB 1070 | |
300 | CLEAR T$:CURSOR 10,2:PRINT "Mit Plotter ? ":CURSOR 10,3:INPUT " | |
310 | IF T$="J" GOSUB 1110 | |
320 | CURSOR 10,2:PRINT "von : ":CURSOR 10,3:PRINT "nach: " | |
330 | ON RND 2 GOTO 340 ,520 | |
340 | CLEAR A,B:Z=1:CURSOR 10,1:PRINT "Ihr Zug: ":CURSOR 20,3:PRINT " " | |
350 | CURSOR 20,1+Z:PRINT STR$ (A(Z)+1) | |
360 | PSET (K(A(Z),0),K(A(Z),1)),X | |
370 | T=ASC INKEY$ | |
380 | IF T BEEP 1,1,20:GOTO 400 | |
390 | GOTO 360 | |
400 | PSET (K(A(Z),0),K(A(Z),1)) | |
410 | IF T=4 LET A(Z)=A(Z)+1-6*(A(Z)>4):GOTO 350 | |
420 | IF T=5 LET A(Z)=A(Z)-1+6*(A(Z)<1):GOTO 350 | |
430 | IF T>48 AND T<55 LET A(Z)=T-49:GOTO 350 | |
440 | IF T=13 LET Z=Z+1:IF Z=3 GOTO 460 | |
450 | GOTO 350 | |
460 | IF L(I(A,B),2) OR A=B CURSOR 10,1:BEEP 1,255,100:WAIT :PRINT "FEHLEINGABE !":WAIT 0:GOTO 340 | |
470 | F=1:GOSUB 850 | |
480 | C=0:FOR J=0TO 5:IF J=A OR J=B GOTO 500 | |
490 | IF L(I(A,J),2)=2 AND L(I(B,J),2)=2 LET C=J+1:J=5 | |
500 | NEXT J | |
510 | IF C LET C=C-1:GOTO 890 | |
520 | CURSOR 10,1:PRINT "ich denke ...":CURSOR 20,2:PRINT " ":CURSOR 20,3:PRINT " " | |
530 | FOR I=0 TO 14:IF L(I,2) GOTO 730 | |
540 | A=P(L(I,0),0):B=P(L(I,0),1):U=P(L(I,1),0):V=P(L(I,1),1) | |
550 | IF A+B+U+V=0 LET L(I,3)=10:GOTO 730 | |
560 | IF A+B+U=0 OR A+U+V=0 LET L(I,3)=9:GOTO 730 | |
570 | IF A+B=0 OR U+V=0 LET L(I,3)=8:GOTO 730 | |
580 | FOR J=0 TO 5:IF J=L(I,0) OR J=L(I,1) GOTO 600 | |
590 | IF L(I(L(I,0),J),2)=1 AND L(I(L(I,1),J),2)=1 LET L(I,3)=0:C=J:J=5:NEXT J:GOTO 730 | |
600 | NEXT J | |
610 | FOR J=0 TO 5:IF J=L(I,0) OR J=L(I,1) GOTO 630 | |
620 | IF L(I(L(I,0),J),2)=2 AND L(I(L(I,1),J),2)=2 LET L(I,3)=1:J=5:NEXT J:GOTO 730 | |
630 | NEXT J | |
640 | FOR J=0 TO 5:IF J=L(I,0) OR J=L(I,1) GOTO 670 | |
650 | IF L(I(L(I,0),J),2)=2 AND L(I(L(I,1),J),2)=1 LET L(I,3)=2:J=5:NEXT J:GOTO 730 | |
660 | IF L(I(L(I,0),J),2)=1 AND L(I(L(I,1),J),2)=2 LET L(I,3)=2:J=5:NEXT J:GOTO 730 | |
670 | NEXT J | |
680 | IF A*B*U*V=1 LET L(I,3)=3:GOTO 730 | |
690 | IF (A*B=1AND U+V=1) OR (A+B=1AND U*V=1) LET L(I,3)=4:GOTO 730 | |
700 | IF A*U=1 LET L(I,3)=5:GOTO 730 | |
710 | IF (A*V=1AND B+U=0) OR (B*U=1AND A+V=0) LET L(I,3)=6:GOTO 730 | |
720 | IF A+U=0 LET L(I,3)=7 | |
730 | NEXT I | |
740 | CLEAR M,Z:FOR I=0 TO 14 | |
750 | IF L(I,2) GOTO 780 | |
760 | IF L(I,3)>M LET M=L(I,3):Z=0:L(Z,4)=I:GOTO 780 | |
770 | IF L(I,3)=M LET Z=Z+1-(M=0):L(Z,4)=I | |
780 | NEXT I | |
790 | L=L(RND (Z+1)-1,4):A=L(L,0):B=L(L,1) | |
800 | CURSOR 10,1:PRINT "... und ziehe" | |
810 | CURSOR 20,2:PRINT STR$ (A+1):CURSOR 20,3:PRINT STR$ (B+1) | |
820 | F=0:GOSUB 850 :IF M=0 GOTO 890 | |
830 | WAIT :GPRINT :WAIT 0 | |
840 | GOTO 340 | |
850 | LINE (K(A,0),K(A,1))-(K(B,0),K(B,1)),21845+F*43690 | |
860 | IF P LLINE (K(A,2),K(A,3))-(K(B,2),K(B,3)),0,4-2*F:GLCURSOR (K(B,2),-375) | |
870 | L(I(A,B),2)=F+1:P(A,F)=P(A,F)+1:P(B,F)=P(B,F)+1 | |
880 | RETURN | |
890 | CURSOR 9,1:IF F GOTO 910 | |
900 | PRINT "SHARP PC-1360 ":GOTO 920 | |
910 | PRINT T$(0)+LEFT$ (" ",13-LEN T$(0)) | |
920 | CURSOR 9,2:PRINT "hat verloren !" | |
930 | CURSOR 9,3:PRINT "Dreieck: ";STR$ (A+1);"-";STR$ (B+1);"-";STR$ (C+1) | |
940 | FOR I=1 TO 3:LINE (K(A(I),0)-2,K(A(I),1)-2)-(K(A(I),0)+2,K(A(I),1)+2),B:NEXT I | |
950 | IF P=0 WAIT :GPRINT :CLS :END | |
960 | FOR I=1 TO 3:CIRCLE (K(A(I),2),K(A(I),3)),9,7:PAINT 10,6-F*5:NEXT I | |
970 | GLCURSOR (0,-250):LPRINT CHR$ 27+"@" | |
980 | Z=0:FOR I=0 TO 14:IF L(I,2) LET Z=Z+1 | |
990 | NEXT I | |
1000 | IF F GOTO 1030 | |
1010 | LPRINT "SHARP PC-1360"; | |
1020 | GOTO 1040 | |
1030 | LPRINT T$(0); | |
1040 | LPRINT " hat im ";Z;" von maximal 15":LPRINT "Spielzuegen verloren, weil das Dreieck" | |
1050 | LPRINT STR$ (A+1);"-";STR$ (B+1);"-";STR$ (C+1);" gezeichnet wurde !" | |
1060 | LF 5:WAIT :GPRINT :CLS :END | |
1070 | CLS :RESTORE 30 :FOR I=1 TO 24:IF I/4=INT (I/4) WAIT | |
1080 | READ S$(0):PRINT S$(0):IF I/4=INT (I/4) WAIT 0:CLS | |
1090 | NEXT I | |
1100 | GOSUB 1210 :RETURN | |
1110 | P=1:CURSOR 10,2:PRINT "CE-140P o.k.?!":WAIT :CURSOR 10,3:PRINT " | |
1120 | LPRINT CHR$ 27+"@" | |
1130 | CSIZE 3:LPRINT " >>> HEXAGON <<<" | |
1140 | COLOR 2,7:LPRINT LEFT$ (" ",7-LEN T$(0)/2);T$(0); | |
1150 | COLOR 0:LPRINT " gegen "; | |
1160 | COLOR 4,7:LPRINT "PC-1360" | |
1170 | GRAPH :GLCURSOR (240,-200):SORGN | |
1180 | FOR I=0 TO 5:CIRCLE (K(I,2),K(I,3)),10,0,0,360,1,60 | |
1190 | GLCURSOR (K(I,2)+25*SGN K(I,2)-6,K(I,3)+25*SGN K(I,3)-9):LPRINT "P"+STR$ (I+1):NEXT I | |
1200 | GLCURSOR (-231,-375):RETURN | |
1210 | FOR I=0 TO 5:LINE (K(I,0)-1,K(I,1)-1)-(K(I,0)+1,K(I,1)+1),BF:NEXT I | |
1220 | CURSOR 9,0:PRINT ">>> HEXAGON <<<" | |
1230 | RETURN | |
Javascriptprogramm
Dokumentation ansehen
Programmspeicher-Image laden
![]() |
Falls diese Seite ohne Navigationsleiste angezeigt wird, aktivieren Sie Javascript oder klicken Sie hier!