' ' 浜様様様様様様様様様様様様様様様様様様様様様様様様様 ' ' 浜様様様様様様様様様様様様様様様様様様様様 ' ' JUEGO ' ' Intercambio de crculos ' ' ' 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!) DECLARE FUNCTION cp! (h!, v!) RANDOMIZE TIMER TYPE bl h AS SINGLE v AS SINGLE ah AS SINGLE av AS SINGLE cl AS SINGLE dh AS SINGLE dv AS SINGLE END TYPE DIM b(1 TO 12) AS bl SCREEN 12 PALETTE 12, 63 PALETTE 4, 23 PALETTE 3, 0 FOR h = 10 TO 630 STEP 62 boton h - 6, 0, 12, 12, 15, 8, 7, 3 boton h - 6, 434, 12, 12, 15, 8, 7, 3 NEXT FOR h = 10 TO 568 STEP 62 boton h + 6, 0, 50, 10, 15, 8, 7, 3 boton h + 6, 436, 50, 10, 15, 8, 7, 3 NEXT FOR v = 62 TO 400 STEP 62 boton 4, v, 12, 12, 15, 8, 7, 3 boton 314, v, 12, 12, 15, 8, 7, 3 boton 624, v, 12, 12, 15, 8, 7, 3 NEXT FOR v = 12 TO 400 STEP 62 boton 4, v, 10, 50, 15, 8, 7, 3 boton 316, v, 8, 50, 15, 8, 7, 3 boton 626, v, 10, 50, 15, 8, 7, 3 NEXT LINE (316, 75)-STEP(7, 48), 0, BF LINE (316, 199)-STEP(7, 48), 0, BF LINE (316, 323)-STEP(7, 48), 0, BF boton 318, 74, 4, 50, 15, 4, 12, 3 boton 318, 198, 4, 50, 15, 6, 14, 3 boton 318, 322, 4, 50, 15, 1, 9, 3 FOR n = 1 TO 6 b(n).cl = 10 b(n).h = INT(RND * 100) + 100 b(n).v = INT(RND * 180) + 100 NEXT FOR n = 7 TO 12 b(n).cl = 13 b(n).h = INT(RND * 100) + 440 b(n).v = INT(RND * 180) + 100 NEXT boton 81, 446, 195, 34, 15, 5, 13, 3 boton 364, 446, 195, 34, 15, 2, 10, 3 boton 276, 464, 88, 16, 15, 8, 7, 3 digital 10, 452, 6, 2, b(1).cl, 4, 1 digital 48, 452, 0, 2, b(7).cl, 4, 1 digital 565, 452, 0, 2, b(1).cl, 4, 1 digital 603, 452, 6, 2, b(7).cl, 4, 1 COLOR 12: LOCATE 29, 36: PRINT "1"; COLOR 14: LOCATE 29, 38: PRINT "2"; COLOR 9: LOCATE 29, 40: PRINT "3"; COLOR 15: LOCATE 29, 43: PRINT "Esc"; FOR n = 1 TO 12 DO DO b(n).dh = (RND * 10) - 5 IF b(n).dh < 0 AND b(n).dh > -1 THEN b(n).dh = b(n).dh - 1 IF b(n).dh > 0 AND b(n).dh < 1 THEN b(n).dh = b(n).dh + 1 b(n).dv = (RND * 10) - 5 IF b(n).dv < 0 AND b(n).dv > -1 THEN b(n).dv = b(n).dv - 1 IF b(n).dv > 0 AND b(n).dv < 1 THEN b(n).dv = b(n).dv + 1 LOOP UNTIL b(n).dh <> 0 OR b(n).dv <> 0 LOOP WHILE cp(b(n).h, b(n).v) <> 0 NEXT DO ret = 0 DO KBD$ = INKEY$ ret = ret + 1 LOOP WHILE KBD$ = "" AND ret < 3 IF KBD$ <> "" THEN SELECT CASE KBD$ CASE "1" IF puerta1 = 1 THEN puerta1 = 0 boton 318, 74, 4, 50, 15, 4, 12, 3 ELSE puerta1 = 1 LINE (317, 75)-STEP(7, 48), 0, BF END IF CASE "2" IF puerta2 = 1 THEN puerta2 = 0 boton 318, 198, 4, 50, 15, 6, 14, 3 ELSE puerta2 = 1 LINE (317, 199)-STEP(7, 48), 0, BF END IF CASE "3" IF puerta2 = 1 THEN puerta2 = 0 boton 318, 322, 4, 50, 15, 1, 9, 3 ELSE puerta2 = 1 LINE (317, 323)-STEP(7, 48), 0, BF END IF END SELECT END IF n = n + 1 IF n > 12 THEN n = 1 b(n).ah = b(n).h b(n).av = b(n).v b(n).h = b(n).h + b(n).dh b(n).v = b(n).v + b(n).dv CIRCLE (b(n).ah, b(n).av), 2, 0 IF cp(b(n).h, b(n).v) <> 0 THEN DO DO b(n).dh = (RND * 10) - 5 IF b(n).dh < 0 AND b(n).dh > -1 THEN b(n).dh = b(n).dh - 1 IF b(n).dh > 0 AND b(n).dh < 1 THEN b(n).dh = b(n).dh + 1 b(n).dv = (RND * 10) - 5 IF b(n).dv < 0 AND b(n).dv > -1 THEN b(n).dv = b(n).dv - 1 IF b(n).dv > 0 AND b(n).dv < 1 THEN b(n).dv = b(n).dv + 1 LOOP UNTIL b(n).dh <> 0 OR b(n).dv <> 0 b(n).h = b(n).ah + b(n).dh b(n).v = b(n).av + b(n).dv LOOP WHILE cp(b(n).h, b(n).v) <> 0 END IF CIRCLE (b(n).h, b(n).v), 2, b(n).cl avi = vi ari = ri avd = vd ard = rd vi = 0 ri = 0 vd = 0 rd = 0 FOR nn = 1 TO 6 IF b(nn).h < 320 THEN vi = vi + 1 ELSE vd = vd + 1 NEXT FOR nn = 7 TO 12 IF b(nn).h < 320 THEN ri = ri + 1 ELSE rd = rd + 1 NEXT pas = 0 IF vi <> avi THEN digital 10, 452, vi, 2, b(1).cl, 4, 0: pas = 1 IF ri <> ari THEN digital 48, 452, ri, 2, b(7).cl, 4, 0: pas = 1 IF vd <> avd THEN digital 565, 452, vd, 2, b(1).cl, 4, 0: pas = 1 IF rd <> ard THEN digital 603, 452, rd, 2, b(7).cl, 4, 0: pas = 1 IF pas = 1 THEN SOUND 1000, .5: SOUND 3000, .5 LOOP UNTIL KBD$ = CHR$(27) XOR (ri = 6 AND vd = 6) IF (ri = 6 AND vd = 6) THEN FOR a = 1 TO 6 FOR b = 1 TO 6 LINE (b(a).h, b(a).v)-(b(b).h, b(b).v), b(a).cl LINE (b(a + 6).h, b(a + 6).v)-(b(b + 6).h, b(b + 6).v), b(a + 6).cl NEXT CIRCLE (b(a).h, b(a).v), 4, b(a).cl CIRCLE (b(a + 6).h, b(a + 6).v), 4, b(a + 6).cl NEXT WHILE INKEY$ <> "": WEND DO: LOOP WHILE INKEY$ = "" END IF CLS COLOR 7 LOCATE 16, 21: PRINT "J.M.G.B. Hecho en Ronda Marzo 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 FUNCTION cp (h, v) IF POINT(h - 3, v - 3) <> 0 THEN cp = 1: EXIT FUNCTION IF POINT(h, v - 4) <> 0 THEN cp = 1: EXIT FUNCTION IF POINT(h + 3, v - 3) <> 0 THEN cp = 1: EXIT FUNCTION IF POINT(h + 4, v) <> 0 THEN cp = 1: EXIT FUNCTION IF POINT(h + 3, v + 3) <> 0 THEN cp = 1: EXIT FUNCTION IF POINT(h, v + 4) <> 0 THEN cp = 1: EXIT FUNCTION IF POINT(h - 3, v + 3) <> 0 THEN cp = 1: EXIT FUNCTION IF POINT(h - 4, v) <> 0 THEN cp = 1: EXIT FUNCTION cp = 0 END FUNCTION 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