DECLARE FUNCTION Igual%(a!,b!) SCREEN 2 WINDOW(-40,-25)-(40,25) xInc=0 yInc=0 Fct=ATN(1)/45 rx=-.5 rz=-.5 DO CLS alfa=xInc*Fct beta=yInc*Fct sa=SIN(alfa):sb=SIN(beta):ca=COS(alfa):cb=COS(beta) RESTORE Inicio READ Max% FOR i%=1 TO Max% READ px,pz flag%=(i%=1 OR i%=14) px=px+rx pz=pz+rz px=px*40 py=-25 pz=pz*40 nx=px*cb+(py*-sa+pz*ca)*sb ny=py*ca+pz*sa nz=px*-sb+(py*-sa+pz*ca)*cb nx=nx*.99^-nz ny=ny*.99^-nz IF flag% THEN PSET(nx,ny) ELSE LINE-(nx,ny) END IF NEXT arx=rx arz=rz DO k$=INKEY$ SELECT CASE k$ CASE CHR$(0)+"Q":yInc=(yInc+90)MOD 360 CASE CHR$(0)+"S":yInc=(yInc-90)MOD 360 CASE CHR$(0)+"G":rx=rx-sb:rz=rz+cb CASE CHR$(0)+"O":rx=rx+sb:rz=rz-cb CASE "":SCREEN 0:SYSTEM CASE " CASE ELSE:BEEP END SELECT LOOP WHILE k$=" RESTORE Trilha READ Max% FOR i%=1 TO Max% READ tx,tz IF Igual(-tx-.5,rx)AND Igual(-tz-.5,rz)THEN EXIT FOR NEXT IF i%>Max% THEN rx=arx:rz=arz LOOP SYSTEM Inicio: DATA 22 DATA 0,0,0,3,1,4,4,4,5,3,5,2,8,2,9,1,9,-2,8,-3,1,-3,0,-2,0,0 DATA 1,0,1,3,4,3,4,2,5,1,8,1,8,-2,1,-2,1,0 Trilha: DATA 28 DATA 0,0,0,1,0,2,0,3,1,3,2,3,3,3,4,3,4,2,4,1,5,1,6,1,7,1,8,1 DATA 8,0,8,-1,8,-2,8,-3,7,-3,6,-3,5,-3,4,-3,3,-3,2,-3,1,-3,0,-3 DATA 0,-2,0,-1 DEFINT A-Z FUNCTION Igual(a!,b!) Igual=ABS(a!-b!)<=.001 END FUNCTION