' ' ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ' º º ' º ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º ' º º º º ' º º º º ' º º 1 8 E N L Ö N E A º º ' º º º º ' º º þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ þ º º ' º º º º ' º º H E C H O E N R O N D A º º ' º º º º ' º º F5 >> Empezar º º ' º º º º ' º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ º ' º es.geocities.com/jm00092 º ' ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ' ' ' ' ' DECLARE SUB salida () DECLARE SUB digital (h!, v!, num!, l!, C1!, C2!, B!) DECLARE SUB boton (h!, v!, l!, a!, sol!, sombra!, cara!, borde!) DECLARE SUB bot (h!, v!, c!) DECLARE SUB pieza (h!, v!, n!) COMMON SHARED puntos RANDOMIZE TIMER DIM SHARED forma$(1 TO 34) DIM SHARED mover(1 TO 2000) forma$(1) = "070000787777070000070000070000070000" forma$(11) = "070000070000070000070000787777070000" forma$(21) = "000070000070000070000070777787000070" forma$(31) = "000070777787000070000070000070000070" forma$(2) = "000000777777000000000000777777000000" forma$(12) = "070070070070070070070070070070070070" forma$(22) = "000000777777000000000000777777000000" forma$(32) = "070070070070070070070070070070070070" forma$(3) = "070070070070070070070070787787070070" forma$(13) = "000070777787000070000070777787000070" forma$(23) = "070070787787070070070070070070070070" forma$(33) = "070000787777070000070000787777070000" forma$(4) = "070070787787070070070070787787070070" forma$(14) = "070070787787070070070070787787070070" forma$(24) = "070070787787070070070070787787070070" forma$(34) = "070070787787070070070070787787070070" fondo = 1 SCREEN 12 PALETTE 3, 0 PALETTE 12, 63 PALETTE 6, 63 PAINT (0, 0), 15 FOR n = 1 TO 50 LINE STEP(0, 0)-(INT(RND * 640), 479), 11 LINE STEP(0, 0)-(639, INT(RND * 480)), 11 LINE STEP(0, 0)-(INT(RND * 640), 0), 11 LINE STEP(0, 0)-(0, INT(RND * 480)), 11 NEXT boton 460, 10, 150, 44, 8, 7, 0, 15 COLOR 2: LOCATE 2, 60: PRINT " 18"; COLOR 13: PRINT " En"; COLOR 6: PRINT " L¡nea " COLOR 15: LOCATE 3, 60: PRINT " Hecho en Ronda " FOR h = 482 TO 566 FOR v = 17 TO 27 c = POINT(h, v) IF c THEN LINE ((h * 3) - 1280, ((v * 3) + 130))-STEP(2, 3), c, BF NEXT NEXT FOR h = 480 TO 590 FOR v = 33 TO 43 IF POINT(h, v) = 15 THEN LINE ((h * 2) - 775, ((v * 3) + 150))-STEP(1, 2), 7 NEXT NEXT SLEEP 3 LINE (47, 0)-(431, 480), fondo, BF FOR h = 482 TO 566 FOR v = 17 TO 27 c = POINT(h, v) IF c THEN LINE ((v * 3) - 45, 480 - ((h * 4) - 1860))-STEP(2, 3), c, BF NEXT NEXT boton 470, 265, 108, 67, 8, 7, 0, 15 LOCATE 18, 63: COLOR 2: PRINT "Puntos" digital 480, 300, 0, 6, 10, 8, 0 boton 500, 429, 65, 21, 8, 7, 0, 15 LOCATE 28, 65: COLOR 7: PRINT FRE(-2) DO h = ((INT(RND * 6)) * 48) + 96 v = -48 cual = (INT(RND * 4) + 1) DO ret = 0 DO kbd$ = UCASE$(INKEY$) ret = ret + 1 LOOP WHILE kbd$ = "" AND ret < 8000 LINE (h - 1, v - 1)-STEP(48, 48), fondo, BF IF ret = 8000 THEN v = v + 48 SELECT CASE kbd$ CASE CHR$(0) + "H": cual = cual + 10: IF cual > 40 THEN cual = cual - 40 CASE CHR$(0) + "P": v = v + 48 CASE CHR$(0) + "K": IF POINT(h - 2, v + 10) = fondo THEN h = h - 48 CASE CHR$(0) + "M": IF POINT(h + 50, v + 10) = fondo THEN h = h + 48 CASE CHR$(27): salida END SELECT pieza h, v, cual LOOP WHILE POINT(h + 25, v + 50) = fondo SOUND 800, .5 IF v = 0 THEN salida DO hay = 0 FOR hh = 12 TO 480 STEP 24 FOR vv = 450 TO 16 STEP -48 IF (POINT(hh, vv) = 7 XOR POINT(hh, vv) = 12) AND (POINT(hh, vv - 48) = 7 XOR POINT(hh, vv - 48) = 12) AND (POINT(hh, vv + 48) = 7 XOR POINT(hh, vv + 48) = 12) THEN FOR vvv = vv - 66 TO vv + 70 STEP 8 SELECT CASE POINT(hh - 7, vvv + 2) CASE 7: bot hh - 4, vvv, 4 CASE ELSE: bot hh - 4, vvv, 12 END SELECT FOR delay = 1 TO 500: NEXT NEXT hay = 1 END IF IF (POINT(vv, hh) = 7 XOR POINT(vv, hh) = 12) AND (POINT(vv - 48, hh) = 7 XOR POINT(vv - 48, hh) = 12) AND (POINT(vv + 48, hh) = 7 XOR POINT(vv + 48, hh) = 12) THEN FOR hhh = vv - 66 TO vv + 70 STEP 8 SELECT CASE POINT(hhh + 2, hh - 8) CASE 7: bot hhh, hh - 4, 4 CASE ELSE: bot hhh, hh - 4, 12 END SELECT FOR delay = 1 TO 500: NEXT NEXT hay = 1 END IF NEXT NEXT FOR hh = 12 TO 480 STEP 24 FOR vv = 476 TO 2 STEP -8 SELECT CASE POINT(hh, vv) CASE 12: bot hh - 4, vv - 4, 3 CASE 4: bot hh - 4, vv - 4, 7 END SELECT NEXT NEXT FOR vv = 12 TO 480 STEP 24 FOR hh = 428 TO 50 STEP -8 SELECT CASE POINT(hh, vv) CASE 12: bot hh - 4, vv - 4, 3 CASE 4: bot hh - 4, vv - 4, 7 END SELECT NEXT NEXT FOR hh = 72 TO 412 STEP 48 FOR vv = 456 TO 24 STEP -48 IF POINT(hh - 10, vv) = 3 AND POINT(hh + 10, vv) = 3 AND POINT(hh, vv - 10) = 3 AND POINT(hh, vv + 10) = 3 THEN FOR vvv = vv TO 72 STEP -48 GET (hh - 24, vvv - 72)-STEP(46, 46), mover PUT (hh - 24, vvv - 24), mover, PSET NEXT vv = 456 hh = 72 END IF NEXT NEXT LOOP UNTIL hay = 0 LOCATE 28, 65: COLOR 7: PRINT FRE(-2) LOOP SUB bot (h, v, c) SELECT CASE c CASE 7: C1 = 15: C2 = 8 CASE 8: C1 = 7: C2 = 0 CASE 12: C1 = 15: C2 = 4: puntos = puntos + 1: digital 480, 300, puntos, 6, 10, 8, 0 CASE 4: C1 = 12: C2 = 0: puntos = puntos + 1: digital 480, 300, puntos, 6, 10, 8, 0 CASE 3: C1 = 3: C2 = 3 END SELECT LINE (h, v)-STEP(6, 6), C1, B LINE (h + 1, v + 1)-STEP(5, 5), C2, B LINE (h + 1, v + 1)-STEP(4, 4), c, BF END SUB SUB boton (h, v, l, a, sol, sombra, cara, borde) LINE (h, v)-STEP(l, a), borde, 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), sol, B LINE (h + 3, v + 3)-STEP(l - 5, a - 5), sombra, B LINE (h + 3, v + 3)-STEP(l - 6, a - 6), cara, BF END SUB SUB digital (h, v, num, l, C1, C2, B) SOUND 2500, .3 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$ = STR$(num) 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 "brr10gl8fr6": ELSE : PSET (h, v), C2: DRAW "brr10gl8fr6" IF MID$(cadena$, 2, 1) = "1" THEN : PSET (h, v), C1: : DRAW "bdd9eu7fd5": ELSE : PSET (h, v), C2: : DRAW "bdd9eu7fd5" IF MID$(cadena$, 3, 1) = "1" THEN : PSET (h, v), C1: : DRAW "bdbr12d9hu7gd5": ELSE : PSET (h, v), C2: : DRAW "bdbr12d9hu7gd5" IF MID$(cadena$, 4, 1) = "1" THEN : PSET (h, v), C1: : DRAW "br2bd10r8fl10fr8": ELSE : PSET (h, v), C2: : DRAW "br2bd10r8fl10fr8" IF MID$(cadena$, 5, 1) = "1" THEN : PSET (h, v), C1: : DRAW "bd12d9eu7fd5": ELSE : PSET (h, v), C2: : DRAW "bd12d9eu7fd5" IF MID$(cadena$, 6, 1) = "1" THEN : PSET (h, v), C1: : DRAW "bd12br12d9hu7gd5": ELSE : PSET (h, v), C2: : DRAW "bd12br12d9hu7gd5" IF MID$(cadena$, 7, 1) = "1" THEN : PSET (h, v), C1: : DRAW "brbd22r10hl8er6": ELSE : PSET (h, v), C2: : DRAW "brbd22r10hl8er6" PSET (h, v), 0 h = h + 15 NEXT h = ah END SUB SUB pieza (h, v, n) LINE (h, v)-STEP(46, 46), 3, BF FOR vv = 0 TO 5 FOR hh = 0 TO 5 x = x + 1 c = VAL(MID$(forma$(n), x, 1)) IF c THEN bot (h + (hh * 8)), (v + (vv * 8)), c NEXT NEXT END SUB SUB salida FOR h = 47 TO 431 STEP 2 LINE (h, 0)-(h, 479), 1 NEXT FOR v = 1 TO 479 STEP 2 LINE (47, v)-(431, v), 1 NEXT FOR h = 471 TO 577 FOR v = 266 TO 331 LINE ((h * 3) - 1334, (v * 3) - 550)-STEP(2, 2), POINT(h, v) NEXT NEXT SLEEP CLS LOCATE 16, 20: COLOR 9: PRINT " J.M.G.B. Hecho en Ronda Navidad 1996" COLOR 0 END END SUB