16 lines
838 B
QBasic
16 lines
838 B
QBasic
|
|
FOR i=1 TO 9: PRINT AT i,2;"\{17}\{0}\{16}\{4}..............": NEXT i: LET s$=" "
|
||
|
|
@walls:
|
||
|
|
READ a: READ b: DATA 1,8,2,3,2,4,2,6,3,8,4,2,4,4,4,5,4,6,4,8,0,0: LET p=22562
|
||
|
|
IF a THEN PRINT AT a,b;s$;AT a,17-b;s$;AT 10-a,b;s$;AT 10-a,17-b;s$: GOTO @walls
|
||
|
|
LET g=22831: LET x=1: LET z=4: POKE 22689,129: POKE 22704,129: FOR s=1 TO 85
|
||
|
|
@loop:
|
||
|
|
LET k$=INKEY$: LET n=FN a(p,(32*(k$="d"))-(32*(k$="e"))-(k$="o")+(k$="p"))
|
||
|
|
LET b=(b * NOT n) + n: POKE p,0: LET q=PEEK (p+b): LET p=p+b*(q<>56)
|
||
|
|
LET p=p+(-14*b*(q=129)): LET q=PEEK p: POKE p,54
|
||
|
|
LET j=g-p: LET j=FN a(g,32*(j<-31))+FN a(g,-32*(j>31))
|
||
|
|
IF j=0 THEN LET j=FN a(g,(g-p<0))+FN a(g,-(g-p>0))
|
||
|
|
POKE g,z:LET x=j-(x * NOT j):LET g=g+x: LET z=PEEK g: POKE g,40
|
||
|
|
IF z=54 THEN RUN
|
||
|
|
IF q<>4 THEN GOTO @loop
|
||
|
|
NEXT s: RUN
|
||
|
|
DEF FN a(l,n)=n*(PEEK (l+n)<>56)
|