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