"Gloupman" for Sharp PC-1500 + 4,8,16KB or PC-1500A.
© Hebdogiciel (Shift editions). (*)
Author : Marc Codin
Published in "Hebdogiciel" #89 (June 1985).
French version : 5608 (BASIC) bytes.
English version : 5556 (BASIC) bytes.
CLOAD "GLOUPMAN"
(note: load either French or English version)
RUN or DEF A
Game:
Turned into a pacman, you must eat the "*"s and avoid
the ghosts. The PC-1500 displays the following informations : map
of the current labyrinth, your position (=row) in the labyrinth (arrow),
remaining lives, detail of the row where you are in the labyrinth.
There is one ghost per row, and it goes through the walls. You
can trick the ghosts using the tunnels. There are 2 tunnels in
labys #1 and 4, 1 tunnel in laby #2, no tunnel in laby #3. You
win 1 life for each completed level.
Jeu:
Metamorphosé en pacman, vous devez dévorer les "*" et
échapper aux fantômes. Infos dont vous disposez: le laby ou
vous êtes, le niveau dans le laby (flèche), le nombre de vies
restant, et la ligne sur laquelle vous êtes. Il y a un fantôme
par ligne, qui traverse les murs. Mouvement avec les touches I (gauche),
P (droite), Q (haut), Z (bas). Attention: vous avez 2 tunnels au
1er laby, un seul au 2ème, aucun au 3ème et 2 au 4ème. Une vie
gagnée par tableau. Au 5e laby, on recommence. Bonne chance!
Keys:
I / P - left / right
Q / Z - up / down
(*) This software is made available for documentation purpose only, since the PC-1500 is now an obsolete computer. This is not a commercial site. If you own a copyright on this program and do not want it to be available from this site, please inform me and I will remove it.
BASIC program.
1 "GLOUPMAN"
2 "Hebdogiciel No 89"
5 "A"WAIT 5:CLS :A$="1C3E3E361400",B$="14363E3E1C00":FOR
I=0 TO 7:CURSOR I:GPRINT A$:CURSOR 25-I:GPRINT B$
6 NEXT I:CURSOR 9:PRINT "GLOUPMAN":RESTORE 1200:FOR I=1
TO 32:READ A,B:BEEP 1,A,B/8:NEXT I
7 INPUT "Explications (O/N) ? ";A$:IF A$="O"
THEN 1700
8 WAIT 0:PRINT "Preparation Laby 1 (30s)..."
9 CLEAR :DIM A$(118)*1,L$(0)*34,V$(0)*32,F(7),T$(0)*17,W$(16)*2,W(16):T=1
10 V$(0)="070505000705050007050500"
11 T1=T-1
12 IF T1>3LET T1=T1-4: GOTO 12
13 RESTORE 1250+T1*7:FOR I=0 TO 6:FOR J=0 TO 16:READ A:A=(A-1)*(2^I),W(J)=W(J)+A
14 NEXT J:NEXT I:FOR I=0 TO 16:B=W(I),A=INT (B/16),B=B-16*A,W$(I)=CHR$
(A+48+7*(A>9))
15 W$(I)=W$(I)+CHR$ (B+48+7*(B>9)):NEXT I:FOR I=0 TO 16:L$(0)=L$(0)+W$(I):NEXT
I
16 READ L1
20 PD$="1C3E3E361400"
25 PM$="1C3E383E1C00",PT$="1C3E0E3E1C00",PB$="1C3E3E3E1C00"
30 PG$="14363E3E1C00",F$="7E3B7F3B7E00"
40 A$=CHR$ 127,B$="*":RESTORE 1250+T1*7:FOR I=0 TO 6:FOR
J=0 TO 16:READ A:A$(I*17+J)=@$(A)
50 NEXT J:NEXT I
160 H=4,P=8,P$="1C3E3E3E1C00",TIME =0
170 CLS :WAIT 0:CURSOR 23:GPRINT V$(0):CURSOR 20:GPRINT L$(0):CURSOR
6:PRINT "READY"
180 GOSUB 200:FOR I=0 TO 200:NEXT I:BEEP 5: GOTO 300
200 CURSOR 0:I=17*(H-1),T$(0)=A$(I)+A$(I+1)+A$(I+2)+A$(I+3)+A$(I+4)+A$(I+5)+A$(I+6)
205 T$(0)=T$(0)+A$(I+7)+A$(I+8)+A$(I+9)+A$(I+10)+A$(I+11)+A$(I+12)+A$(I+13)
206 T$(0)=T$(0)+A$(I+14)+A$(I+15)+A$(I+16):CURSOR 0:PRINT T$(0)
210 CURSOR P:GPRINT P$:CURSOR F(H):GPRINT F$:CURSOR 19:F=2^(H-1):GPRINT
F;F;F;F*2+F/2;F:BEEP 1,20,5:RETURN
300 B$=INKEY$ :IF B$="I" THEN 700
310 IF B$="P" THEN 500
320 IF B$="Q" THEN 400
330 IF B$="Z" THEN 600
340 P$=PB$: GOTO 800
400 P$=PM$,H=H-1:IF H=0LET H=7
410 IF ASC (A$(17*(H-1)+P))=127LET H=H+1
420 GOTO 810
500 P$=PD$,P=P+1:IF P=17LET P=0
510 IF ASC (A$(17*(H-1)+P))=127LET P=P-1
520 GOTO 800
600 P$=PT$,H=H+1:IF H=8LET H=1
610 IF ASC (A$(17*(H-1)+P))=127LET H=H-1
620 GOTO 810
700 P$=PG$,P=P-1:IF P=-1LET P=16
710 IF ASC (A$(17*(H-1)+P))=127LET P=P+1
800 F(H)=F(H)+SGN (P-F(H)):IF F(H)=P THEN 1000
810 IF A$(17*(H-1)+P)="*"LET K=K+1,A$(17*(H-1)+P)="
":BEEP 1,8,10:IF K=L1 THEN 1500
820 GOSUB 200: GOTO 300
1000 REM PERDU
1005 WAIT 9:BEEP 10,100,5:CURSOR P:PRINT " ":BEEP 1:CURSOR
P:GPRINT "1C3E3E3E1C":RESTORE 1280
1010 CURSOR P:FOR I=1 TO 11:READ P$,A,B:CURSOR P:GPRINT P$:BEEP 1,A,B:NEXT
I:READ P$
1070 IF LEN (V$(0))>7 GOTO 1180
1160 CLS :WAIT 0:PRINT "SCORE :";:WAIT :S=K*(L1/20-DEG
(TIME *100))/L1,SC=SC+S*(S>0):PRINT SC
1170 CLS :CURSOR 4:PRINT "*** GAME OVER ***": GOTO 1
1180 V$(0)=MID$ (V$(0),1,LEN (V$(0))-8),H=4,P=8:FOR I=1 TO 7:F(I)=0:NEXT
I: GOTO 170
1200 DATA 218,208,105,419,140,313,170,262,105,419,140,313,170,524,198,220,96,444
1210 DATA 132,332,160,278,96,444,132,332,160,556,218,208,105,419,140,313,170,262
1220 DATA 105,419,140,313,170,655,160,139,140,313,150,148,140,157,125,351,132,166
1230 DATA 125,176,109,395,118,187,109,198,105,419
1250 DATA 1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1
1251 DATA 2,2,2,1,1,2,2,2,2,2,2,2,1,1,2,2,2
1252 DATA 1,2,2,1,2,2,2,1,1,1,2,2,2,1,2,2,1
1253 DATA 1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1
1254 DATA 1,2,2,1,2,2,2,1,1,1,2,2,2,1,2,2,1
1255 DATA 2,2,2,1,1,2,2,2,2,2,2,2,1,1,2,2,2
1256 DATA 1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,1,89
1257 DATA 1,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,1
1258 DATA 1,2,2,1,2,1,2,2,2,2,2,1,2,1,2,2,1
1259 DATA 1,1,2,2,2,2,2,1,1,1,2,2,2,2,2,1,1
1260 DATA 2,2,2,1,1,2,2,2,2,2,2,2,1,1,2,2,2
1261 DATA 1,1,2,2,2,2,2,1,1,1,2,2,2,2,2,1,1
1262 DATA 1,2,2,1,2,1,2,2,2,2,2,1,2,1,2,2,1
1263 DATA 1,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,1,81
1264 DATA 1,2,2,2,2,1,1,2,2,2,1,1,2,2,2,2,1
1265 DATA 1,2,2,1,2,2,2,2,1,2,2,2,2,1,2,2,1
1266 DATA 1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,1
1267 DATA 1,1,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1
1268 DATA 1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,1
1269 DATA 1,2,2,1,2,2,2,2,1,2,2,2,2,1,2,2,1
1270 DATA 1,2,2,2,2,1,1,2,2,2,1,1,2,2,2,2,1,77
1271 DATA 1,2,2,2,1,1,2,2,1,2,2,1,1,2,2,2,1,
1272 DATA 2,2,2,2,2,1,2,2,1,2,2,1,2,2,2,2,2
1273 DATA 1,2,2,2,2,1,2,1,1,1,2,1,2,1,1,1,1
1274 DATA 1,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1
1275 DATA 1,2,2,2,1,1,2,2,2,2,2,1,2,1,1,1,1
1276 DATA 2,2,2,2,1,1,2,2,1,2,2,1,2,2,2,2,2
1277 DATA 1,2,2,2,1,1,2,2,1,2,2,1,1,2,2,2,1,75
1280 DATA "1C3E3E3E1C",105,300,"183C3E3C18",105,300,"10383E3810",105,90
1282 DATA "00303E3000",105,270,"00203E20",82,300,"00003E00",93,90
1290 DATA "00003C",93,270,"000038",105,90,"000030",105,270,"000020",112,90
1292 DATA "000040",105,540,"1C3E3E3E1C"
1500 K=0:RESTORE 1200:A$="1C2222221C",B$="001C1C1C00":WAIT
0:J=0:FOR I=30 TO 0 STEP -2
1505 BEEP 1,I:NEXT I:CLS :S=DEG (TIME *100),S=L1*(L1/20-S),S=S*(S>0)
1507 SC=SC+S:PRINT "SCORE :";:WAIT 150:PRINT USING
"#######";SC:CLS :WAIT 0
1510 FOR I=1 TO 15:CURSOR I:GPRINT 8:NEXT I:WAIT 5
1520 FOR I=30 TO 0 STEP -1:GCURSOR I*3:GPRINT PG$+"0000":CURSOR
0:J=J=0:GPRINT @$(J+1):BEEP J,8,5:GCURSOR I*4+34
1530 GPRINT F$+"000000":NEXT I:BEEP 1:CURSOR 0:PRINT
" ":P$="1C3E7F7F7722"
1540 FOR I=1 TO 32:READ A,B:GCURSOR I*2+32:GPRINT "000000"+F$:GCURSOR
I*3:GPRINT "00000000"+P$:BEEP 1,A,B/8:NEXT I
1550 GCURSOR I*3:GPRINT "1C3E7F7F77632200"+F$
1555 GCURSOR I*3:GPRINT "1C3E7F7F7F3E1C000000000000":FOR
I=20 TO 0 STEP -2
1560 BEEP 1,I:NEXT I:CURSOR 10:PRINT "GLOUP ":FOR I=100
TO 150 STEP 4:GCURSOR I:GPRINT "000000020002":GCURSOR I+2
1570 GPRINT "000000040004":NEXT I:CLS
1620 IF LEN (V$(0))<32LET V$(0)=V$(0)+"07050500"
1630 T=T+1:FOR I=0 TO 16:W(I)=0:NEXT I:L$(0)="":PRINT
"TABLEAU :";T:FOR I=0 TO 7:F(I)=0:NEXT I
1640 GOTO 11
1700 REM Explications
1710 WAIT 0:PRINT "Metamorphose en ";:GPRINT "1C3E3E3E1C";:WAIT
100:PRINT ", vous"
1720 PRINT "devez devorer les "+CHR$ 34+"*"+CHR$
34+", et"
1730 WAIT 0:PRINT "echapper aux fantomes : ";:WAIT 100:GPRINT
"7E3B7F3B7E"
1740 PRINT "Infos dont vous disposez:"
1760 PRINT "Le laby ou vous etes :":WAIT 0:PRINT
"(1)";
1770 GPRINT "7F7F7F7F7F7F227F7F495D7F7F6B2A6B7F7F5D497F7F227F7F7F7F7F7F";
1775 PRINT " (2)";:WAIT 150
1780 GPRINT "7F7F7F7F7F7F7F086B7F55771C7F6B6B6B7F1C77557F6B087F7F7F7F7F7F7F"
1785 WAIT 0:PRINT "(3)";
1790 GPRINT "7F7F7F7F7F7F7F0077775D7F3E2A6B496B2A3E7F5D7777007F7F7F7F7F7F7F";
1795 PRINT " (4)";
1800 WAIT 150:GPRINT "7F7F7F7F7F227F7F7F0E087F7B187B7F083E636363227F7F7F7F7F"
1810 WAIT 0:PRINT "Niveau :";:WAIT 100:GPRINT "080808081408"
1820 WAIT 0:PRINT "Nbre de vies restant:";:WAIT 100
1830 GPRINT "040404150E0400000705050007050500070505"
1840 PRINT "Et la ligne sur laquelle":WAIT 0:PRINT
"vous etes. Il y a 1 ";:GPRINT "7E3B7F3B7E";
1850 WAIT 100:PRINT " par":PRINT "ligne, qui
traverse les ";CHR$ 127;"."
1860 PRINT "Mouvement avec les touches"
1870 WAIT 0:GPRINT "14363E3E1C";:PRINT " (I) (P)
";:WAIT 150:GPRINT "1C3E3E3614"
1880 WAIT 0:GPRINT "1C3E383E1C";:PRINT " (Q) (Z)
";:WAIT 150:GPRINT "1C3E0E3E1C"
1890 PAUSE "Attention : Vous avez":PAUSE "2
tunnels au 1er laby,"
1900 PAUSE "1 seul au 2eme,"
1910 PAUSE "AUCUN au 3eme, et 2 au 4e."
1920 WAIT 100:PRINT "Une vie gagnee par tableau":PRINT
"Au 5e laby, on recommence."
1940 PRINT " BONNE CHANCE !": GOTO 8