Seite 1 von 1

MazezaM

Verfasst: 30.10.2023, 15:33
von ein Thüringer
Dieses Spiel (halb Sokoban, halb Labyrinth) gibt es zwar schon länger, ich habe es aber jetzt erst entdeckt.
das gleiche Spiel auf dem ZX81 ...
das gleiche Spiel auf dem ZX81 ...
ZX81.png (851 Bytes) 11304 mal betrachtet
... und etwas farbenfroher auf dem ZX Spectrum - es gibt auch eine Windows-Version
... und etwas farbenfroher auf dem ZX Spectrum - es gibt auch eine Windows-Version
SPECTRUM.png (9.5 KiB) 11304 mal betrachtet
Die Spielfigur soll vom Eingang des Labyrinths (links) zum Ausgang (rechts) gelangen. Hierfür lassen sich de Hindernisse zeilenweise hin- und herschieben.
COM-Datei für CP/M mit Steuerbefehlen des<br />Terminals VT52, deswegen leider nicht für die Joyce
COM-Datei für CP/M mit Steuerbefehlen des
Terminals VT52, deswegen leider nicht für die Joyce
cpm4.png (5.41 KiB) 11304 mal betrachtet
Manche Level sind sehr knifflig, dann ist die BasiCode-Version von Vorteil: die Zahl der Versuche ist nicht begrenzt und mit "s" kann man zum nächsten Level springen. ;)
die BC-Version in Rob Hagemans'<br />Browser-Bascoder ...
die BC-Version in Rob Hagemans'
Browser-Bascoder ...
MAZE27.png (3.95 KiB) 11304 mal betrachtet
Für die Joyce habe ich die BasiCode-Version ein wenig modifiziert.
... und auf der Joyce
... und auf der Joyce
JOYCE.png (1.56 KiB) 11304 mal betrachtet


Zuvor muss auf der Joyce der Bascoder gestartet worden sein, aus dem Menü wird diese Datei hinzugeladen.

Code: Alles auswählen

1000 A=194:GOTO 20:REM *** MAZEZAM ***
1010 DIM R$(11):DIM Y(11):HO=14:VE=14
1310 HO=HO+1:R=HO:GOSUB 110:GOSUB 120:IF R=HO THEN 1310
1610 VE=VE+1:S=VE:GOSUB 110:GOSUB 120:IF VE=S THEN 1610
1910 GOSUB 100:VE=6:HO=(R-7)/2:GOSUB 110:PRINT"MazezaM":VE=S-6
1920 HO=0:GOSUB 110:PRINT"MOVE  ijkl":PRINT"RETRY r"
1930 PRINT"SKIP  s":PRINT"QUIT  q":GOSUB 210
1940 IF IN$<>"q" THEN 1960
1950 GOTO 950
1960 RESTORE:Z=0:N$="":T=0
2210 GOSUB 250:T=T+1:IF T=31 THEN 1910
2220 GOSUB 4910:N=W:GOSUB 4910:M=W:GOSUB 4910:P=W:GOSUB 4910:Q=W
2230 F=0:FOR C=0 TO N-1:R$(C)="":Y(C)=0:FOR D=0 TO M-1:A$="ÿ"
2240 IF F=0 THEN GOSUB 4910:F=6
2250 F=F-1:G=INT(W/2)*2:IF W=G THEN A$=" "
2260 R$(C)=R$(C)+A$:W=G/2:NEXT D:NEXT C:U=INT((R-M)/2)
2270 V=INT((S-N)/2)
2510 GOSUB 100
2810 VE=V-1:HO=U-1:W=P:X=0:GOSUB 4610:FOR I=0 TO N-1:Y(I)=0
2820 VE=VE+1:GOSUB 110:A$="#":B$=A$:IF I=P THEN A$="ü"
2830 IF I=Q THEN B$="ü"
2840 PRINT A$;:GOSUB 4010:PRINT B$:NEXT I:VE=VE+1:GOSUB 4610
2850 HO=HO+1
3110 GOSUB 210:D=W:E=X:IF (IN$="i" OR IN=31) AND W>0 THEN D=W-1
3120 IF (IN$="k" OR IN=30) AND W<N-1 THEN D=W+1
3130 IF (IN$="j" OR IN=28) AND X>0 THEN E=X-1:F=1
3140 IF (IN$="l" OR IN=29) AND X<M-1 THEN E=X+1:F=M
3150 IF (IN$="l" OR IN=29) AND W=Q AND X=M-1 OR IN$="s" THEN 2210
3160 IF IN$="q" THEN 1910
3170 IF IN$="r" THEN 2810
3180 I=D:GOSUB 4310
3190 IF MID$(J$,E+1,1)=" " THEN I=W:W=D:X=E:GOSUB 3710:GOTO 3410
3200 IF X<>E AND MID$(J$,F,1)=" " THEN Y(W)=Y(W)+E-X:X=E
3410 I=W:GOSUB 3710:GOTO 3110
3710 VE=V+I:GOSUB 110
4010 GOSUB 4310:IF I<>W THEN PRINT J$;:RETURN
4020 IF X>0 THEN PRINT LEFT$(J$,X);
4030 PRINT CHR$(188);:IF X<M-1 THEN PRINT RIGHT$(J$,M-X-1);
4040 RETURN
4310 IF Y(I)=0 THEN J$=R$(I):RETURN
4320 IF Y(I)>0 THEN B=Y(I):C=M-B
4330 IF Y(I)<0 THEN C=-Y(I):B=M-C
4340 J$=RIGHT$(R$(I),B)+LEFT$(R$(I),C):RETURN
4610 GOSUB 110:PRINT LEFT$("#################",M+2):RETURN
4910 Z=Z+1:IF Z=LEN(N$)+1 THEN READ N$:Z=1
4920 B=ASC(MID$(N$,Z,1)):A=ASC("A"):G=ASC("a"):H=ASC("0")
4930 W=63:IF B>=A AND B<A+26 THEN W=B-A
4940 IF B>=G AND B<G+26 THEN W=B-G+26
4950 IF B>=H AND B<H+10 THEN W=B-H+52
4960 IF B=ASC("+") THEN W=62
4970 RETURN
25000 DATA "CFBAKBCHABykADHABmVZBDICBkTlKEFDDCtSCEHADq6oWCFHAE"
25010 DATA "cpQvKJDICCFQtdEHBCUspqDEOBD/2gZ20O4fCEHBB2UpDDGNAA"
25020 DATA "4D6zp7p8nLmqJFGDBCmW6EEICDcwOXKAGGAFUVUNN0EKACsy1Y"
25030 DATA "q7CEHADWk2hELFKAEtpocFlqJAEHCDKsRVOEPCAeeWbNavRzTF"
25040 DATA "ICC1sGq9gCELACuBzaerBAFIDBkjpuqJNEJDAiYP3QBHJGCyTa"
25050 DATA "6tJE3PEAGHAAy08CdPAKNHAAg8f6AT+l7MFZ63Ux5+DAAHJBEy"
25060 DATA "wq1w+0rJ6AKLAJAg+39oWA9/GuNYu+HAAHKAAaRdTF2OVZd0F"
32000 REM Autor: Malcohol (Malcolm Tyrrell) auf GitHub 2020