Sharp PC-1500 : TEMPTER game

"Tempter" for Sharp PC-1500 +4,8,16KB or PC-1500A.
© Sharpentiers. (*)
Author : ? (**)
Published in "La revue des sharpentiers" #8 (1984).
BASIC program - 2910 bytes.

Download zipped WAV (23.4 KB)

CLOAD "TEMPTER"
RUN or DEF A

Game: Find (possibly) a treasure chest and the exit in a labyrinth within limited time. What you see in the labyrinth is represented in subjective (3D!) view on the left part of the tiny LCD screen... The display also tells you the distance (in steps) from the exit. An asterisk ("*") warns you that the treasure is nearby. If you encounter a guard, shoot him before he gets you...

Keys:
2/4/6/8 - move
SPACE - fire
G- dig wall (when you are at the exit or when you're stuck)

(*) 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.

(**) Anybody out there can provide the name of the author of this program ? Thanks.


BASIC program.

1 "TEMPTER"
2 "Sharpentiers No 8
3 "Deplacements: 2 4 6 8
4 "Feu!:SPACE Trou mur:G
5 "A" GOTO 800
10 DATA E-1,F
11 DATA E,F-1
12 DATA E+1,F
13 DATA E,F+1
20 RESTORE 9+R:READ E,F
21 Q=ASC MID$ (@$(E),F,1)-64:RETURN
25 Q=ASC MID$ (@$(E),F,1)-64:RETURN
31 DATA X-1,Y
32 DATA X,Y-1
33 DATA X+1,Y
34 DATA X,Y+1
40 "8"IF POINT 8=127GCURSOR 5:GPRINT "67770460047773":BEEP 2,3:TIME =TIME +.001:GCURSOR 5:GPRINT Z$:
41 RESTORE 30+R:READ X,Y:IF X=JIF Y=K THEN 700
42 IF X=MIF Y=N THEN 600
43 BEEP 1,7,9:BEEP 1,9,9: GOTO 100
50 "6"R=R-1+(R=1)*4: GOTO 43
60 "4"R=R+1-(R=4)*4: GOTO 43
70 "2"R=R+2-(R>2)*4: GOTO 43
80 "G"IF POINT 8<127 OR X*R=1 OR Y*R=64 OR (X=16 AND R=3) OR (Y=1 AND R=2):
81 GCURSOR 7:GPRINT "776377":BEEP 1,220:GCURSOR 6:GPRINT "7763416377":BEEP 1,230:GCURSOR 6:GPRINT "6341414163"
82 BEEP 1,240:GCURSOR 5:GPRINT "63410000004163":BEEP 1,255:S=S-10*RND 200: GOTO 41
91 DATA 1,4,8
92 DATA 2,8,1
93 DATA 4,1,2
94 DATA 8,2,4
100 RESTORE 90+R:READ A,B,C:GCURSOR 55:PRINT USING "###";SQR ((X-M)*(X-M)+(Y-N)*(Y-N))
110 E=X,F=Y,V=0: GOSUB 25:CURSOR 0:IF (Q OR A)=QGPRINT "41417F": GOTO 130
120 GPRINT "7F7F7F"
130 GCURSOR 14:IF (Q OR B)=QGPRINT "7F4141": GOTO 150
140 GPRINT "7F7F7F"
150 GCURSOR 3:IF (Q OR C)=Q THEN 170
160 GPRINT Z$;"7F7F7F7F":RANDOM :
170 GOSUB 20:IF E=JIF F=KLET V=48
180 IF (Q OR A)=QGPRINT "101F": GOTO 200
190 GPRINT "3F1F"
200 GCURSOR 12:IF (Q OR B)=QGPRINT "1F10": GOTO 220
210 GPRINT "1F3F"
220 GCURSOR 5:IF (Q OR C)=Q THEN 240
230 GPRINT "1F1F1F1F1F1F1F":
240 GOSUB 20:IF E=JIF F=KLET V=8
250 IF (Q OR A)=QGPRINT "0407": GOTO 270
260 GPRINT "0F07"
270 GCURSOR 10:IF (Q OR B)=QGPRINT "0704": GOTO 290
280 GPRINT "070F"
290 GCURSOR 7:IF (Q OR C)=QGPRINT "030103":
300 GPRINT "070707":
400 IF VGCURSOR 7:GPRINT V OR POINT 7;V OR POINT 8;V OR POINT 9
410 W$=" ":IF INKEY$ =W$LET TIME =TIME +.0005
420 G=SQR ((X-J)*(X-J)+(Y-K)*(Y-K)):IF G<4LET W$="*"
430 CURSOR 3:PRINT W$:IF RND 0<.5/G/G THEN 500
440 ""CURSOR 17:PRINT USING "##.##";(P-TIME )*100:IF TIME >P THEN 550
450 GOTO INKEY$
500 GCURSOR 7:GPRINT "2B1D2B":A=64:USING :FOR Z=0 TO 2:BEEP 1,L:IF INKEY$ <>" "NEXT Z: GOTO 540
510 BEEP 1:FOR B=11 TO 9 STEP -1:GCURSOR B:GPRINT A OR POINT B:GCURSOR 16-B:GPRINT A OR POINT (16-B)
520 GCURSOR B:GPRINT A OR POINT B-A:GCURSOR 16-B:GPRINT A OR POINT (16-B)-A:A=A/2:NEXT B:GCURSOR 7:GPRINT "2B152B"
530 BEEP 2,255,8:B=5-2*Z:GCURSOR 7:GPRINT "0B3D0B":CURSOR 3:PRINT STR$ B:BEEP 3,0:S=S+B*10: GOTO 100
540 GCURSOR 6:GPRINT "001C1C1C",:BEEP 1,50:GCURSOR 5:GPRINT "003E3E3E3E3E",:BEEP 1,60:GCURSOR 4:GPRINT 0;Z$,:BEEP 1,70
550 BEEP 1,222,444:IF S>HCURSOR 20:PRINT " ":CURSOR 4:INPUT "Hi-SCORE! NAME:";V$:H=S
560 CURSOR 4:WAIT :PRINT USING "*######";"YOU DIED! SCORE";S:END
600 B=(P-TIME )*1E5:BEEP 9,1:WAIT 120:PRINT "HERE IS THE EXIT! +";USING ;B
610 S=S+B,L=L-5*(L>5):PRINT "SCORE";S: GOTO 850
700 FOR Z=1 TO 5:GCURSOR 4:GPRINT 0,"0060606000",0:BEEP 2,3:GCURSOR 4:GPRINT "102408606C60082410"
710 BEEP 2,3:NEXT Z:WAIT 90:PRINT :S=S+1E4,J=-9:PRINT USING ;"SCORE";S: GOTO 950
800 CLS :WAIT 90:CURSOR 8:PRINT "TEMPTER":PRINT " Hi";H;" By ";V$
810 S=0,L=40,T=0,P=.0459,Z$="7F7F7F7F7F7F7F7F":ON ERROR GOTO 400
850 RANDOM :T=T+1:WAIT 0:PRINT "ROUND";T:BEEP 1
860 X=RND 3+RND 2*13-13,Y=RND 16,M=(X<9)*15+1,N=RND 16:IF RND 2=1LET A=X,X=Y,Y=A,A=M,M=N,N=A
870 J=RND 16,K=RND 16,R=RND 4,A$="FEGEECFEGEECFEEC"
880 B$="LCJFCNIDIFEKJFEI",C$="FILIJJFECLCLILEC",D$="JFGEKJJDMEIFGEEK"
890 E$="JJNEMILEEGCJNGEI",F$="NIJFECDGEINIHLEC",G$="JBJJFIFOGCNCFECJ"
900 H$="JNOKJBNOOOKJJDKJ",I$="LIJJLOOOOKJLIFIJ",J$="FCJNGILMPILECNEI"
910 K$="JJJJLEEGMEGEILEC",L$="JLIJFEEIDCLGEEEI",M$="NEEMMEGEEMCJDGEC"
920 N$="LECFCBJFEEKLEMCJ",O$="FEIJNMIJBFIFEEIJ",P$="LEEILEEMILEMEEEI"
930 FOR Z=RND 9+1 TO Z+5:FOR A=RND 9+1 TO A+5
940 @$(Z)=LEFT$ (@$(Z),A)+CHR$ (RND 16+64)+RIGHT$ (@$(Z),15-A):NEXT A:NEXT Z:TIME =0
950 WAIT 0:CLS :CURSOR 5:GPRINT "7F555555557F003E2B3E001712427E00243F247F444F442C"
960 GCURSOR 82:GPRINT "02023E020200223E22003E0408043E003E2A2A22": GOTO 100


Return to the main page