'
'  © JM. :: Hecho en Ronda
'
'
'  Procedente de...        es.geocities.com/jm00092
'
'______________________________________________________________________
'
DECLARE SUB mover (hh!, dir!)
DECLARE SUB pantalla (hh!)
SCREEN 13
DIM SHARED mat(0 TO 13500)
LINE (0, 0)-STEP(320, 25), 26, BF
PSET (5, 15), 102
DRAW "r5e4r10f7r3e2r4e2r4e8r12e2r3f15r8e4r5f2r4e8r4e2r7f3e2r5f3r7e4r2f10r20"

pantalla 0

DO
   DO
      kbd$ = INKEY$
   LOOP WHILE kbd$ = ""
   SELECT CASE kbd$
      CASE CHR$(0) + "K": h = h - 1: mover h, 2
      CASE CHR$(0) + "M": h = h + 1: mover h, 1
   END SELECT

LOOP UNTIL kbd$ = CHR$(27)

'
'  © JM. :: Hecho en Ronda
'
'
'  Procedente de...        es.geocities.com/jm00092
'
'______________________________________________________________________
'
SUB mover (hh, dir)
LINE (0, 20)-STEP(310, 0), 26
LINE (hh, 20)-STEP(31, 0), 40
SELECT CASE dir
   CASE 1
      GET (10, 30)-(319, 199), mat
      FOR n = 10 TO 0 STEP -1
         PUT (n, 30), mat, PSET
         FOR v = 4 TO 19
            LINE (310 + n, v * 10)-(320, (v * 10) + 9), POINT(hh + 31, v) - 10, BF
         NEXT
      NEXT

   CASE ELSE
      GET (0, 30)-(309, 199), mat
      FOR n = 0 TO 10
         PUT (n, 30), mat, PSET
         FOR v = 4 TO 19
            LINE (-1, v * 10)-(n, (v * 10) + 9), POINT(hh, v) - 10, BF
         NEXT
      NEXT

END SELECT

END SUB

'
'  © JM. :: Hecho en Ronda
'
'
'  Procedente de...        es.geocities.com/jm00092
'
'______________________________________________________________________
'
SUB pantalla (hh)
LINE (0, 20)-STEP(310, 0), 26
LINE (hh, 20)-STEP(31, 0), 40

FOR h = hh TO hh + 31
   FOR v = 3 TO 19
      c = POINT(h, v) - 10
      IF POINT((h - hh) * 10, v * 10) <> c THEN LINE ((h - hh) * 10, v * 10)-STEP(9, 9), c, BF
   NEXT
NEXT

END SUB

