'
'           浜様様様様様様様様様様様様様様様様様様様様様様様様様
'                                                              
'               浜様様様様様様様様様様様様様様様様様様様様    
'                                                            
'                                                            
'                       JUEGO DE TUMBAR LADRILLOS            
'                                                            
'                                                            
'                                                            
'                      H E C H O   E N   R O N D A           
'                                                            
'                             F5 >> Empezar                  
'                                                            
'               藩様様様様様様様様様様様様様様様様様様様様    
'                        es.geocities.com/jm00092              
'           藩様様様様様様様様様様様様様様様様様様様様様様様様様
'
'
'
'
'
DECLARE SUB letras (X!, Y!, TEXT$, escl!, clrs!, ang!, ancho!, relleno!)
DECLARE SUB boton (h!, v!, l!, a!, sol!, sombra!, cara!, bord!)
DECLARE SUB digital (h!, v!, num!, l!, C1!, C2!, B!)
DIM movil(1 TO 300)
DIM bola(1 TO 150)
RANDOMIZE TIMER

SCREEN 12
PALETTE 12, 63
PALETTE 7, 0
PALETTE 8, 0
PALETTE 1, 0
COLOR 15: LOCATE 30, 24: PRINT "Tumbar Ladrillos -- Hecho en Ronda";

FOR v = 20 TO 480 STEP 20
   FOR h = -10 TO 640 STEP 20
      boton h, v, 19, 19, 7, 0, 8, 0
   NEXT
NEXT


boton 60, 30, 80, 420, 15, 4, 12, 0

LOCATE 1, 1: COLOR 1: PRINT "Tumbar Ladrillos"
FOR h = 126 TO 0 STEP -1
   FOR v = 2 TO 11
      IF POINT(h, v) = 1 THEN
         LINE (v * 3 + 81, 311 - (h * 2))-STEP(2, 1), 0, B
         LINE (v * 3 + 80, 310 - (h * 2))-STEP(2, 1), 14, B
      END IF
   NEXT
NEXT

FOR h = -10 TO 640 STEP 20
   boton h, 0, 19, 19, 7, 0, 8, 0
NEXT

PALETTE
PALETTE 12, 63
PALETTE 1, 0
PALETTE 9, 0


boton 140, 30, 420, 420, 15, 8, 7, 0
boton 147, 37, 406, 406, 8, 15, 0, 7
LINE (149, 39)-STEP(402, 402), 1, B
LINE (149, 441)-STEP(402, 0), 9
digital 80, 340, 0, 3, 10, 8, 1
digital 80, 380, 0, 3, 10, 8, 1
letras 74, 428, "hecho en", 6, 4, 0, 1, 1
letras 77, 439, "ronda", 8, 4, 0, 2, 1
letras 73, 427, "hecho en", 6, 14, 0, 1, 1
letras 76, 438, "ronda", 8, 14, 0, 2, 1

FOR v = 3 TO 5 STEP 2
   FOR h = 2 TO 18 STEP 2
      IF RND > .3 THEN
         boton ((h * 20) + 130), ((v * 20) + 20), 40, 20, 15, 8, 7, 0
         objs = objs + 1
         digital 80, 340, objs, 3, 10, 8, 0
      END IF
   NEXT
   FOR h = 3 TO 17 STEP 2
      IF RND > .3 THEN
         boton ((h * 20) + 130), ((v * 20) + 40), 40, 20, 15, 8, 7, 0
         objs = objs + 1
         digital 80, 340, objs, 3, 10, 8, 0
      END IF
   NEXT
NEXT



h = 350
v = 400
dh = RND - .5
dv = -1
mih = 350
boton 310, 420, 80, 20, 14, 2, 10, 0
GET (310, 420)-STEP(79, 19), movil
CIRCLE (h, v), 4, 14
PAINT (h, v), 14, 14
CIRCLE (h - 1, v - 1), 1, 15
PSET (h - 1, v - 1), 15
GET (h - 4, v - 4)-STEP(8, 8), bola



terminado = 0

DO
   n = 0
   DO
      kbd$ = UCASE$(INKEY$)
      n = n + 1
   LOOP WHILE kbd$ = "" AND n < 50
   IF kbd$ <> "" THEN
      LINE (mih - 40, 420)-STEP(79, 19), 0, BF
      IF kbd$ = CHR$(0) + "K" AND mih > 190 THEN mih = mih - 80
      IF kbd$ = CHR$(0) + "M" AND mih < 510 THEN mih = mih + 80
      IF kbd$ = CHR$(27) THEN terminado = 1
      PUT (mih - 40, 420), movil, PSET
   END IF

   IF POINT(h, v + 5) <> 0 THEN
      dv = -1:
      dh = dh + (RND - .5)
      IF POINT(h, v + 5) = 15 THEN PAINT (h, v + 5), 0, 0: SOUND 1000, 1: objs = objs - 1: digital 80, 340, objs, 3, 10, 8, 0
      IF POINT(h, v + 5) = 9 THEN SOUND 300, 3: terminado = 1
      IF POINT(h, v + 5) = 14 THEN SOUND 3000, .5: botes = botes + 1: digital 80, 380, botes, 3, 10, 8, 0
   END IF


   IF POINT(h + 5, v) <> 0 THEN
      dh = -dh
      IF POINT(h + 5, v) = 15 THEN PAINT (h + 5, v), 0, 0: SOUND 1000, 1: objs = objs - 1: digital 80, 340, objs, 3, 10, 8, 0
      IF POINT(h + 5, v) = 14 THEN terminado = 1
   END IF
   IF POINT(h - 5, v) <> 0 THEN
      dh = -dh
      IF POINT(h - 5, v) = 8 THEN PAINT (h - 5, v), 0, 0: SOUND 1000, 1: objs = objs - 1: digital 80, 340, objs, 3, 10, 8, 0
      IF POINT(h - 5, v) = 2 THEN terminado = 1
   END IF
    
   IF terminado = 0 THEN

      IF POINT(h, v - 5) <> 0 THEN
         dv = 1
         IF POINT(h, v - 5) = 8 THEN PAINT (h, v - 5), 0, 0: SOUND 1000, 1: objs = objs - 1: digital 80, 340, objs, 3, 10, 8, 0
      END IF
      IF POINT(h - 5, v - 5) = 8 THEN dv = 1: dh = -dh: PAINT (h - 5, v - 5), 0, 0: SOUND 1000, 1: objs = objs - 1: digital 80, 340, objs, 3, 10, 8, 0
      IF POINT(h + 5, v - 5) = 15 XOR POINT(h + 5, v - 5) = 8 THEN dv = 1: dh = -dh: PAINT (h + 5, v - 5), 0, 0: SOUND 1000, 1: objs = objs - 1: digital 80, 340, objs, 3, 10, 8, 0
      IF POINT(h - 5, v + 5) = 15 XOR POINT(h - 5, v + 5) = 8 THEN dv = -1: dh = -dh: PAINT (h - 5, v + 5), 0, 0: SOUND 1000, 1: objs = objs - 1: digital 80, 340, objs, 3, 10, 8, 0
      IF POINT(h + 5, v + 5) = 15 THEN dv = -1: dh = -dh: PAINT (h + 5, v + 5), 0, 0: SOUND 1000, 1: objs = objs - 1: digital 80, 340, objs, 3, 10, 8, 0
      IF dh > 1 THEN
         dh = 1
      ELSE
         IF dh < -1 THEN dh = -1
      END IF
      LINE (h - 4, v - 4)-STEP(8, 8), 0, B
      h = h + dh
      v = v + dv
      PUT (h - 4, v - 4), bola, PSET
   END IF
LOOP WHILE terminado = 0 AND objs > 0

IF objs = 0 THEN
   letras 200, 400, "conseguido", 4, 1, 0, 1, 1
ELSE
   letras 200, 400, "terminado", 4, 1, 0, 1, 1
END IF
FOR h = 203 TO 242
   FOR v = 397 TO 401
   IF POINT(h, v) > 0 THEN PUT ((h * 8) - 1435, (v * 8) - 2900), bola, PSET
   NEXT
NEXT

IF objs = 0 THEN
   FOR v = 1 TO 2
      FOR h = 1 TO 5
         SOUND (h * 100) + (v * 200) + 100, 2
         SOUND (v * 200) + 600, 2
         IF v = 2 AND h = 5 THEN  ELSE SOUND (h * 200) + 400, 2
      NEXT
   NEXT
END IF

WHILE INKEY$ <> "": WEND
DO: LOOP WHILE INKEY$ = ""

CLS
COLOR 7: LOCATE 16, 24: PRINT "J.M.G.B.    Ronda     Febrero 1999"
COLOR 0

SUB boton (h, v, l, a, sol, sombra, cara, bord)
LINE (h, v)-STEP(l, a), bord, B
LINE (h + 1, v + 1)-STEP(l - 2, a - 2), sol, B
LINE (h + 2, v + 2)-STEP(l - 3, a - 3), sombra, B
LINE (h + 2, v + 2)-STEP(l - 4, a - 4), cara, BF
END SUB

SUB digital (h, v, num, l, C1, C2, B)
IF B THEN boton h - 5, v - 5, ((15 * l + 7)), 32, 8, 15, 0, 7

IF (l - LEN(STR$(num))) > -1 THEN
n$ = SPACE$(l - LEN(STR$(num))) + STR$(num)
ELSE
n$ = RIGHT$(STR$(num), LEN(STR$(num)) - 1)
END IF


ah = h
FOR X = 1 TO LEN(n$)
SELECT CASE UCASE$(MID$(n$, X, 1))
CASE "1": cadena$ = "0010010"
CASE "2": cadena$ = "1011101"
CASE "3": cadena$ = "1011011"
CASE "4": cadena$ = "0111010"
CASE "5": cadena$ = "1101011"
CASE "6": cadena$ = "1101111"
CASE "7": cadena$ = "1010010"
CASE "8": cadena$ = "1111111"
CASE "9": cadena$ = "1111011"
CASE "0": cadena$ = "1110111"
CASE "-": cadena$ = "0001000"
CASE " ": cadena$ = "0000000"
CASE ELSE: SOUND 1000, 1: cadena$ = "0000000"
END SELECT

IF MID$(cadena$, 1, 1) = "1" THEN : PSET (h, v), C1: DRAW "s4brr10gl8fr6":         ELSE : PSET (h, v), C2: DRAW "s4brr10gl8fr6"
IF MID$(cadena$, 2, 1) = "1" THEN : PSET (h, v), C1: : DRAW "s4bdd9eu7fd5":        ELSE : PSET (h, v), C2: : DRAW "s4bdd9eu7fd5"
IF MID$(cadena$, 3, 1) = "1" THEN : PSET (h, v), C1: : DRAW "s4bdbr12d9hu7gd5":    ELSE : PSET (h, v), C2: : DRAW "s4bdbr12d9hu7gd5"
IF MID$(cadena$, 4, 1) = "1" THEN : PSET (h, v), C1: : DRAW "s4br2bd10r8fl10fr8":  ELSE : PSET (h, v), C2: : DRAW "s4br2bd10r8fl10fr8"
IF MID$(cadena$, 5, 1) = "1" THEN : PSET (h, v), C1: : DRAW "s4bd12d9eu7fd5":      ELSE : PSET (h, v), C2: : DRAW "s4bd12d9eu7fd5"
IF MID$(cadena$, 6, 1) = "1" THEN : PSET (h, v), C1: : DRAW "s4bd12br12d9hu7gd5":  ELSE : PSET (h, v), C2: : DRAW "s4bd12br12d9hu7gd5"
IF MID$(cadena$, 7, 1) = "1" THEN : PSET (h, v), C1: : DRAW "s4brbd22r10hl8er6":   ELSE : PSET (h, v), C2: : DRAW "s4brbd22r10hl8er6"
PSET (h, v), 0
h = h + 15
NEXT
h = ah
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 bu4 r2d2l2d2r2"
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": PSET STEP(0, 0), clrs
CASE ",": DRAW "br2 ng"
CASE ";": DRAW "br2 ngbunuBD"
CASE ":": DRAW "br2": PSET STEP(0, 0), clrs: PSET STEP(0, -2), clrs: DRAW "bd2"
CASE "=": DRAW "br2 bunr2bu2r2bd3"
CASE "": DRAW "br2 unr2u2rbunebdrd3"
CASE "": DRAW "br2 bu3 rbunebdrl2d2nr2dr2"
CASE "": DRAW "br2 u3bunebd4"
CASE "": DRAW "br2 u3rbunebdrd3nl2"
CASE "": DRAW "br2 u3brbunebdbrd3nl2"
CASE "": DRAW "br2 unr2u2rbunebdrd3"
CASE "": DRAW "br2 bu3 rbunebdrl2d2nr2dr2"
CASE "": DRAW "br2 u3bunebd4"
CASE "": DRAW "br2 u3rbunebdrd3nl2"
CASE "": DRAW "br2 u3brbunebdbrd3nl2"
CASE ELSE: DRAW "S" + e$ + "ta" + a$ + "BR4"
END SELECT
NEXT: NEXT: NEXT
DRAW "s4ta0"
END SUB

