'
'
'
'                            J  U  E  G  O       D  E
'
'                ÛÛÛ Û   ÛÛÛ ÛÛÛÛÛ ÛÛÛ ÛÛÛ ÛÛÛ ÛÛÛ Û   Û ÛÛÛ ÛÛÛ
'                Û Û Û   Û Û   Û   Û Û Û   Û Û Û Û ÛÛ ÛÛ Û Û Û 
'                ÛÛÛ Û   Û Û   Û   Û Û ÛÛÛ Û Û ÛÛÛ Û Û Û Û Û ÛÛÛ
'                Û   Û   ÛÛÛ   Û   ÛÛÛ Û   Û Û ÛÛ  Û   Û ÛÛÛ   Û
'                Û   ÛÛÛ Û Û   Û   Û Û Û   ÛÛÛ Û Û Û   Û Û Û ÛÛÛ
'
'                          H E C H O   E N   R O N D A
'
'                            es.geocities.com/jm00092
'
'        F5....Empezar     Flechas...Mover/Trepar/Bajar     ESC...Salir
'
'
'
DECLARE SUB ventana (h!, v!, l!, a!, ai!, ad!, g!, cv!, ci!, cc!)
DECLARE SUB tragaluz (h!, v!, l!, a!)
DECLARE SUB luz (h!, v!, l!)
DECLARE SUB flecha (h!, v!, d$, l!, C!)
DECLARE SUB letras (X!, y!, TEXT$, escl!, CLRS!, ang!, ancho!, relleno!)
DECLARE SUB todo ()
DECLARE SUB pantalla (p!)
DECLARE SUB pared (h1!, v1!, h2!, v2!, t!, ladrillo!, cemento!)
DECLARE SUB pantallafacil ()
DECLARE SUB chico ()

RANDOMIZE TIMER
SCREEN 12



'todo


'pantallafacil

pan = 1
h = 50
chico
    DIM Cuadro(1 TO 400)
    x1 = 0: x2 = 20: y1 = 0: y2 = 50
    
    GET (x1, y1)-(x2, y2), Cuadro
LINE (0, 0)-(20, 50), 0, BF
pantalla 1
    DO
  
  
    ah = h
    av = v
SELECT CASE kbd$
                CASE CHR$(0) + "H": v = v - 10
                CASE CHR$(0) + "P": v = v + 10
                CASE CHR$(0) + "K": h = h - 10
                CASE CHR$(0) + "M": h = h + 10
                CASE CHR$(27): END
             
END SELECT

IF suelo = 0 THEN : v = v + 10
IF suelo > 0 AND abajo > 0 AND kbd$ = CHR$(0) + "P" THEN : v = v - 10
IF POINT(h + 10, v + 44) > 0 OR POINT(h + 10, v + 34) > 0 OR POINT(h + 10, v + 24) > 0 THEN : h = ah
IF v < 0 THEN : v = 420: pan = pan - 10: pantalla pan
IF v > 420 THEN : v = 0: pan = pan + 10: pantalla pan
IF h < 0 THEN : h = 610: pan = pan - 1: pantalla pan
IF h > 610 THEN : h = 0: pan = pan + 1: pantalla pan
          
 
        
       
          PUT (h, v), Cuadro, XOR
         
suelo = POINT(h + 10, v + 46)
abajo = POINT(h + 10, v + 56)
DO
kbd$ = INKEY$
LOOP WHILE kbd$ = "" XOR suelo = 0
IF suelo = 0 THEN : FOR caida = 1 TO 600: NEXT
         PUT (h, v), Cuadro
      
    
    LOOP UNTIL kbd$ = CHR$(27)

END

SUB chico
pelo = 14
camiseta = 15
pantalon = 1
zapatos = 15
fondo = 0
         

CIRCLE (10, 10), 4, 13
PAINT (10, 10), 13, 13
PSET (9, 9), 0
PSET (11, 9), 0
PSET (9, 12), 0
PSET (10, 12), 0
PSET (11, 12), 0

CIRCLE (10, 11), 6, pelo, .8, 3.141592654# - .8, 1.1
CIRCLE (10, 11), 5, pelo, .8, 3.141592654# - .8, 1.1

LINE (8, 18)-(12, 28), camiseta, BF
LINE (10, 13)-(10, 18), 13

LINE (6, 20)-(6, 28), 13
LINE (8, 18)-(6, 20), camiseta

LINE (14, 20)-(14, 28), 13
LINE (12, 18)-(14, 20), camiseta

LINE (8, 29)-(6, 42), pantalon
LINE (9, 29)-(7, 42), pantalon
LINE (10, 29)-(8, 42), pantalon

LINE (10, 29)-(12, 42), pantalon
LINE (11, 29)-(13, 42), pantalon
LINE (12, 29)-(14, 42), pantalon

LINE (4, 43)-(8, 44), zapatos, BF
LINE (12, 43)-(16, 44), zapatos, BF
PSET (4, 43), fondo
PSET (16, 43), fondo
PSET (5, 43), fondo
PSET (15, 43), fondo

END SUB

SUB flecha (h, v, d$, l, C)
DRAW "ta0s4"
SELECT CASE d$
CASE "a": PSET (h, v), C: DRAW "c" + STR$(C) + "u" + STR$(l) + "ddlr2dl2dlr4dl4dlr6dl6"
CASE "b": PSET (h, v), C: DRAW "c" + STR$(C) + "d" + STR$(l) + "uulr2ul2ulr4ul4ulr6ul6"
CASE "i": PSET (h, v), C: DRAW "c" + STR$(C) + "l" + STR$(l) + "rrnundrnundrnu2nd2rnu2nd2rnu3nd3rnu3nd3"
CASE "d": PSET (h, v), C: DRAW "c" + STR$(C) + "r" + STR$(l) + "llnundlnundlnu2nd2lnu2nd2lnu3nd3lnu3nd3"
END SELECT
END SUB

SUB letras (X, y, TEXT$, escl, CLRS, ang, ancho, relleno)
IF relleno < 1 THEN : relleno = 1
FOR h = 1 TO ancho STEP relleno
FOR v = 1 TO ancho STEP relleno
ccc = POINT(X + h, y + v)
PSET (X + h, y + v), ccc
C$ = STR$(CLRS): e$ = STR$(escl): a$ = STR$(ang)
FOR a = 1 TO LEN(TEXT$)
IF CLRS > 255 THEN C$ = STR$(INT(RND * 15) + 1)
DRAW "S" + e$ + "C" + C$ + "ta" + a$
SELECT CASE UCASE$(MID$(TEXT$, a, 1))
CASE "A": DRAW "br2 u2nnr2u2r2d4"
CASE "B": DRAW "br2 u4r2dgnlfdnl2"
CASE "C": DRAW "br2 bu4 nr2d4r2"
CASE "D": DRAW "br2 u4rfd2glbr2"
CASE "E": DRAW "br2 bu4 nr2d2nr2d2r2"
CASE "F": DRAW "br2 bu4 nr2d2nr2d2br2"
CASE "G": DRAW "br2 bu4 nr2d4r2unld"
CASE "H": DRAW "br2 u2nu2r2nu2d2"
CASE "I": DRAW "br2 nu4"
CASE "J": DRAW "br2 nur2nu4"
CASE "K": DRAW "br2 u2 nu2ne2f2"
CASE "L": DRAW "br2 nu4r2"
CASE "M": DRAW "br2 u4f2e2d4"
CASE "N": DRAW "br2 u4f4nu4"
CASE "¤": DRAW "br2 u3f3u3bunl3bd4"
CASE "¥": DRAW "br2 u3f3u3bunl3bd4"
CASE "O": DRAW "br2 bu4 nr2d4r2nu4"
CASE "P": DRAW "br2 u2nnr2u2r2d2bd2"
CASE "Q": DRAW "br2 bu4 nr2d4renu3blf"
CASE "R": DRAW "br2 u4r2d2l2f2"
CASE "S": DRAW "br2 r2u2l2u2r2BD4"
CASE "T": DRAW "br2 BU4r2nd4r2bd4"
CASE "U": DRAW "br2 nu4r2nu4"
CASE "V": DRAW "br2 bunu3fenu3bd"
CASE "W": DRAW "br2 bunu3fenu2fenu3bd"
CASE "X": DRAW "br2 br2bu2ne2nf2ng2nh2br2bd2"
CASE "Y": DRAW "br2 br2u2nh2ne2bd2br2"
CASE "Z": DRAW "br2 bu4 r4g2nlnrg2r4"
CASE "1": DRAW "br2 bu3ed4nlr"
CASE "2": DRAW "br2 bu3 erfg3r3"
CASE "3": DRAW "br2 bu4 r2d2nl2d2nl2" '"br2 bu4 r2fgnlfgnl2bl"
CASE "4": DRAW "br2 bu2 nu2r2nu2d2"
CASE "5": DRAW "br2 bu4 nr2d2r2d2nl2"
CASE "6": DRAW "br2 bu4 nr2d2nr2d2r2nu2"
CASE "7": DRAW "br2 bu4 r2d4"
CASE "8": DRAW "br2 u4r2d2nl2d2nl2"
CASE "9": DRAW "br2 bu2 nr2u2r2d4"
CASE "0": DRAW "br2 bu4 nr2d4r2nu4"
CASE "*": DRAW "br2 br2 u2nl2nu2nr2nengnhfbf "
CASE "+": DRAW "br2 br2 u2nl2nu2r2bd2"
CASE "-": DRAW "br2 bu2r2bd2"
CASE ".": DRAW "br2 nu"
CASE ",": DRAW "br2 ng"
CASE ";": DRAW "br2 ngbunuBD"
CASE ":": DRAW "br2 ubuubd3"
CASE "=": DRAW "br2 bunr2bu2r2bd3"
CASE ELSE: DRAW "S" + e$ + "ta" + a$ + "BR4"
END SELECT
NEXT: NEXT: NEXT
END SUB

SUB luz (h, v, l)
IF RND > .2 THEN C = 14 ELSE C = 8
LINE (h, v)-STEP(0, l), 8
CIRCLE STEP(0, 0), 3, C
PAINT STEP(0, 0), C, C
LINE STEP(-10, 1)-STEP(20, 0), 1
CIRCLE STEP(-10, 10), 15, 1, .7, 2.3
PAINT STEP(0, -11), 1, 1
END SUB

SUB pantalla (p) STATIC

CLS



SELECT CASE p

CASE 1

pared 0, 0, 640, 20, 3, 4, 7
pared 0, 0, 10, 480, 3, 4, 7
pared 40, 116, 70, 480, 3, 4, 7
pared 49, 116, 100, 140, 3, 4, 7
pared 90, 76, 130, 140, 3, 4, 7
pared 230, 77, 250, 140, 3, 4, 7
LINE (60, 306)-(640, 306), 10
LINE (350, 306)-(520, 476), 10
LINE (180, 76)-(640, 86), 15, BF
LINE (134, 76)-(180, 76), 10
LINE (70, 146)-(260, 156), 15, BF
FOR a = 86 TO 476 STEP 10
LINE (585, a)-(595, a), 10
NEXT
letras 30, 45, "salida", 8, 14, 0, 1, 1
letras 180, 98, "meta", 8, 13, 0, 1, 1

flecha 22, 50, "b", 40, 10
flecha 28, 40, "b", 30, 12

luz 120, 156, 17
luz 170, 156, 24
luz 220, 156, 20

LINE (270, 246)-(360, 256), 15, BF
LINE (80, 246)-(590, 246), 10
LINE (80, 386)-(260, 396), 15, BF
LINE (80, 466)-(460, 466), 10
pared 250, 366, 380, 415, 3, 4, 7
pared 526, 366, 575, 415, 3, 4, 7
LINE (370, 146)-(585, 156), 15, BF
pared 464, 156, 492, 311, 3, 4, 7
luz 480, 315, 15
luz 550, 158, 35
LINE (280, 186)-(370, 176), 15, BF
tragaluz 275, 98, 9, 2
tragaluz 380, 165, 10, 1



ventana 100, 90, 20, 40, 100, 100, 2, 7, 8, 11
FOR a = 170 TO 440 STEP 60
ventana 45, a, 35, 30, 100, 100, 2, 7, 8, 11

NEXT


CASE 2

pared 0, 0, 640, 20, 3, 4, 7
pared 385, 76, 387, 480, 3, 4, 7
pared 440, 76, 441, 480, 3, 4, 7
LINE (385, 261)-(455, 306), 0, BF
LINE (0, 306)-(640, 306), 10
FOR a = 76 TO 476 STEP 10
LINE (405, a)-(413, a), 10
LINE (427, a)-(435, a), 10
NEXT
LINE (0, 76)-(385, 86), 15, BF
LINE (455, 76)-(639, 86), 15, BF

pared 50, 80, 230, 200, 3, 4, 7
pared 50, 306, 340, 370, 3, 4, 7

FOR a = 35 TO 110 STEP 20
ventana a * 2, 100, 25, 35, 100, 100, 2, 7, 8, 11
ventana a * 2, 160, 25, 35, 100, 100, 2, 7, 8, 11
ventana a * 3, 320, 30, 35, 100, 100, 2, 7, 8, 11
luz ((a * 3) + 12), 370, 70
luz ((a * 2) + 12), 200, 30
luz ((a * 2) + 180), 86, 144
NEXT












CASE 3

pared 0, 0, 640, 20, 3, 4, 7
pared 620, 0, 640, 480, 3, 4, 7

LINE (0, 306)-(640, 306), 10
FOR a = 306 TO 456 STEP 10
LINE (60 + a, a)-(80 + a, a), 10
NEXT
LINE (130, 466)-(618, 466), 10
pared 400, 466, 500, 480, 3, 4, 7
LINE (100, 306)-(130, 480), 15, BF
pared 110, 376, 300, 387, 3, 4, 7
LINE (0, 76)-(500, 86), 15, BF













CASE 11
LINE (600, 366)-(500, 466), 15
LINE STEP(0, 0)-(600, 466), 15
LINE STEP(0, 0)-(600, 366), 15
PAINT (590, 450), 15, 15

pared 0, 466, 640, 480, 3, 4, 7
pared 0, 0, 10, 480, 3, 4, 7
pared 40, 0, 70, 410, 3, 4, 7
LINE (110, 96)-(414, 107), 15, BF
LINE (150, 196)-(414, 207), 15, BF
LINE (427, 96)-(569, 107), 15, BF
LINE (427, 196)-(619, 207), 15, BF
pared 110, 96, 110, 300, 3, 4, 7
pared 600, 366, 640, 480, 3, 4, 7
LINE (480, 6)-(640, 166), 10
LINE (420, 366)-(530, 366), 10
LINE (600, 366)-(640, 376), 15, BF
LINE (600, 366)-(620, 410), 15, BF
pared 577, 436, 620, 460, 3, 4, 7
pared 300, 300, 375, 400, 3, 4, 7
LINE (110, 296)-(640, 306), 15, BF
LINE (50, 406)-(412, 416), 15, BF
LINE (415, 296)-(425, 306), 0, BF
LINE (285, 296)-(295, 306), 0, BF
FOR a = 96 TO 466 STEP 10
LINE (415, a)-(425, a), 10
NEXT
FOR a = 296 TO 396 STEP 10
LINE (285, a)-(295, a), 10
NEXT
FOR a = 10 TO 350 STEP 60
ventana 45, a, 35, 30, 100, 100, 2, 7, 8, 11
NEXT

ventana 320, 320, 50, 25, 100, 100, 2, 7, 8, 11









CASE 12
pared 50, 210, 60, 290, 3, 4, 7
pared 50, 55, 160, 140, 3, 4, 7
pared 160, 55, 365, 70, 3, 4, 7

ventana 70, 70, 30, 45, 100, 100, 2, 7, 8, 11
ventana 105, 70, 30, 45, 100, 100, 2, 7, 8, 11


LINE (440, 186)-(480, 246), 15, BF
pared 385, 0, 387, 230, 3, 4, 7
pared 440, 0, 441, 230, 3, 4, 7

LINE (0, 296)-(640, 306), 15, BF
LINE (0, 366)-(640, 480), 15, BF
pared 0, 466, 640, 480, 3, 4, 7
FOR a = 0 TO 620 STEP 122
pared a, 376, a + 20, 480, 3, 4, 7
ventana a + 50, 380, 50, 30, 100, 100, 2, 7, 8, 11
ventana a + 60, 435, 30, 35, 100, 100, 2, 7, 8, 11
NEXT
LINE (0, 146)-(150, 296), 10
FOR a = 6 TO 286 STEP 10
LINE (405, a)-(413, a), 10
LINE (427, a)-(435, a), 10
NEXT
LINE (480, 246)-(640, 246), 10
LINE (480, 186)-(640, 196), 15, BF
letras 148, 304, "hecho en ronda", 8, 1, 0, 1, 1

CASE 13

LINE (400, 186)-(590, 405), 15, BF
pared 400, 186, 401, 400, 3, 4, 7
pared 460, 186, 461, 400, 3, 4, 7
pared 520, 186, 521, 400, 3, 4, 7
pared 580, 186, 581, 400, 3, 4, 7
pared 0, 466, 640, 480, 3, 4, 7
pared 620, 1, 640, 480, 3, 4, 7
pared 0, 366, 40, 480, 3, 4, 7

pared 0, 366, 400, 400, 3, 4, 7

LINE (0, 366)-(400, 375), 15, BF
LINE (305, 366)-(315, 405), 0, BF
PSET (600, 196), 8
LINE (0, 186)-(400, 196), 15, BF
LINE (305, 186)-(315, 196), 0, BF
LINE (596, 186)-(619, 186), 10
LINE (0, 246)-(400, 246), 10
LINE (0, 296)-(400, 306), 15, BF
LINE (305, 296)-(315, 306), 0, BF

FOR a = 186 TO 456 STEP 10
LINE (305, a)-(315, a), 10
NEXT

FOR a = 6 TO 186 STEP 10
LINE (580 - a, a)-(600 - a, a), 10
NEXT
LINE (100, 6)-(618, 6), 10
LINE (100, 0)-(130, 75), 15, BF
LINE (0, 76)-(80, 76), 10
pared 400, 6, 500, 10, 3, 4, 7
pared 400, 6, 440, 50, 3, 4, 7
pared 400, 6, 409, 100, 3, 4, 7
pared 80, 76, 370, 90, 3, 4, 7
flecha 420, 205, "a", 15, 9







CASE ELSE:
LOCATE 15, 35: PRINT p
BEEP
LINE (0, 446)-(640, 446), 10
END SELECT




END SUB

SUB pantallafacil
LINE (0, 96)-(100, 96), 10
LINE (0, 196)-(200, 196), 10
LINE (0, 296)-(300, 296), 10
LINE (100, 396)-(640, 396), 10
LINE (300, 286)-(600, 286), 10

FOR a = 86 TO 386 STEP 10
LINE (505, a)-(515, a), 10
NEXT
LINE (460, 86)-(640, 86), 10

LINE (460, 86)-(260, 286), 10
pared 100, 106, 300, 180, 3, 4, 7
FOR a = 0 TO 100 STEP 10

pared pr, 476 - a, pr + 40, 480, 3, 4, 7
pr = pr + 60
NEXT
END SUB

'                             -Hecho en  RONDA-
'
'
'   DIBUJA UNA PARED DE LADRILLOS EN LA POSICIàN DADA POR H1, V1, H2 Y V2
'
'         CON EL TAMA¥O DEFINDO POR T QUE ES LA ALTURA DEL LADRILLO
'
'                  Y EL COLOR DEFINIDO POR LADRILLO Y CEMENTO
'
'
SUB pared (h1, v1, h2, v2, t, ladrillo, cemento) STATIC




FOR h = h1 TO h2 STEP (4 * t) + 2
FOR v = v1 TO v2 STEP (2 * t) + 4

LINE (h, v)-STEP((4 * t) + 3, (2 * t) + 3), cemento, BF

LINE (h, v)-STEP(2 * t, t), ladrillo, BF
LINE STEP(2, -t)-STEP(2 * t, t), ladrillo, BF
LINE STEP(-(4 * t) - 1, 2)-STEP((4 * t) + 2, t), ladrillo, BF
NEXT
NEXT

END SUB

SUB todo
WINDOW SCREEN (0, 0)-(640 * 3, 480 * 2)
VIEW (0, 0)-(639, 479)
pantalla 1
VIEW (214, 0)-(639, 479)
pantalla 2
VIEW (329, 0)-(639, 479)
pantalla 3
VIEW (0, 220)-(639, 479)
pantalla 11
VIEW (214, 220)-(639, 479)
pantalla 12
VIEW (329, 220)-(639, 479)
pantalla 13




WINDOW
VIEW
LOCATE 25, 10: PRINT "Recorrido completo del Programa de plataformas con comprexi¢n l¢gica"
SLEEP
CLS

END SUB

SUB tragaluz (h, v, l, a)

LINE (h - 2, v - 2)-STEP((8 * l) + 2, (13 * a) + 2), 8, BF
FOR hh = h TO h + ((l - 1) * 8) STEP 8
FOR vv = v TO v + ((a - 1) * 13) STEP 13
LINE (hh, vv)-STEP(6, 11), 3, BF
NEXT
NEXT

END SUB

SUB ventana (h, v, l, a, ai, ad, g, cv, ci, cc)
max = INT(l / 2) - (1.5 * g)
IF ai > max THEN ai = INT(RND * max)
IF ad > max THEN ad = INT(RND * max)
ad = max - ad
LINE (h, v)-STEP(l, a), cv, BF
LINE (h, v)-STEP(l, a), 0, B
LINE (h + g, v + g)-STEP(l - (g * 2), a - (g * 2)), ci, BF
LINE (h + g, v + g)-STEP(l - (g * 2), a - (g * 2)), 0, B
LINE (h + g + ai, v + g)-STEP(INT(l / 2) - INT(g / 2), a - g - g), cv, BF
LINE (h + g + ai, v + g)-STEP(INT(l / 2) - INT(g / 2), a - g - g), 0, B
LINE (h + g + ai + g, v + g + g)-STEP(INT(l / 2) - (2.5 * g), a - (4 * g)), cc, BF
LINE (h + g + ai + g, v + g + g)-STEP(INT(l / 2) - (2.5 * g), a - (4 * g)), 0, B
LINE (h + g + ad, v + g)-STEP(INT(l / 2) - INT(g / 2), a - g - g), cv, BF
LINE (h + g + ad, v + g)-STEP(INT(l / 2) - INT(g / 2), a - g - g), 0, B
LINE (h + g + ad + g, v + g + g)-STEP(INT(l / 2) - (2.5 * g), a - (4 * g)), cc, BF
LINE (h + g + ad + g, v + g + g)-STEP(INT(l / 2) - (2.5 * g), a - (4 * g)), 0, B
END SUB

