Sharp PC1360 Taschencomputer
 

 Sharp PC1360

Hexagon-Spiel - Listing


Javascriptprogramm
Dokumentation ansehen
Programmspeicher-Image laden


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


Javascriptprogramm
Dokumentation ansehen
Programmspeicher-Image laden



Zur Übersichtstabelle



Home
Falls diese Seite ohne Navigationsleiste angezeigt wird, aktivieren Sie Javascript oder klicken Sie hier!