"Gloupman" for Sharp PC-1500 +4/8/16 Ko
 Hebdogiciel, Shift editions
Author : Marc Codin
Published in "Hebdogiciel" #89 - june 28,1985.

French version:  5608 (BASIC) bytes.
English version: 5556 (BASIC) bytes.

CLOAD "GLOUPMAN" 
(note: load either French or English version)
DEF A or RUN

Game :
Turned into a pacman, you must eat the "*"s and avoid 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 line 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.

Keys :
I/P - left/right
Q/Z - up/down

Jeu :
Metamorphose en pacman, vous devez devorer les "*" et echapper aux fantomes. Infos dont vous disposez: le laby ou vous etes, le niveau dans le laby (fleche), le nombre de vies restant, et la ligne sur laquelle vous etes. Il y a un fantome 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 2eme, aucun au 3eme et 2 au 4eme. Une vie gagnee par tableau. Au 5e laby, on recommence. Bonne chance!

----- 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
