'
'           浜様様様様様様様様様様様様様様様様様様様様様様様様様
'                                                              
'               浜様様様様様様様様様様様様様様様様様様様様    
'                                                            
'                            J U E G O   D E                 
'                                                            
'                         M A R C I A N I T O S              
'                                                            
'                                                            
'                      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 mit(1 TO 24, 1 TO 3)
DIM sut(1 TO 24, 1 TO 3)
DIM movil(1 TO 500)
RANDOMIZE TIMER

SCREEN 12


PALETTE 12, 63
PALETTE 7, 0
PALETTE 8, 0
PALETTE 1, 0
COLOR 15: LOCATE 30, 22: PRINT "Juego de Marcianitos -- 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, 79, 420, 15, 4, 12, 0
LOCATE 1, 1: COLOR 1: PRINT "Marcianitos"
FOR h = 86 TO 0 STEP -1
   FOR v = 2 TO 11
      IF POINT(h, v) = 1 THEN
         LINE (v * 3 + 81, 251 - (h * 2))-STEP(2, 1), 0, B
         LINE (v * 3 + 80, 250 - (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
boton 140, 30, 420, 420, 15, 8, 7, 0
boton 147, 37, 406, 406, 8, 15, 0, 7
digital 80, 300, 0, 3, 10, 8, 1
boton 75, 340, 52, 20, 8, 15, 0, 7
boton 75, 370, 52, 20, 8, 15, 0, 7
FOR n = 78 TO 124 STEP 2
   LINE (n, 343)-STEP(0, 14), 2
   LINE (n, 373)-STEP(0, 14), 5
NEXT
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

objs = 0
FOR v = 80 TO 260 STEP 12
   FOR h = 170 TO 530 STEP 20
      CIRCLE (h, v - 2), 3, 11, , , .8
      PAINT (h, v - 2), 11, 11
      CIRCLE (h, v), 8, 8, , , .2
      PAINT (h, v), 8, 8
      objs = objs + 1
   NEXT
   digital 80, 300, objs, 3, 10, 8, 0
NEXT



h = 350
v = 400
mih = 350
energia = 24
suenergia = 24
DRAW "bm345,429c11m350,415m355,429m345,429r3bup11,11"
DRAW "bm340,429c15r20h10g10r5bu2p15,15"
DRAW "bm345,429c7m350,415m355,429m345,429"
GET (340, 410)-STEP(19, 19), movil
PUT (mih - 10, 410), movil, PSET
mitn = 0
sutn = 0
terminado = 0
FOR n = 1 TO 12
   sut(n, 1) = 0'INT(RND * 360) + 170
   sut(n, 2) = 0 '(INT(RND * 16) * 12) + 80
NEXT
DO
   n = 0
   DO
      kbd$ = UCASE$(INKEY$)
      n = n + 1
   LOOP WHILE kbd$ = "" AND n < 50

   IF kbd$ <> "" THEN
      IF kbd$ = CHR$(0) + "K" AND mih > 170 THEN
         LINE (mih - 20, 410)-STEP(40, 19), 0, BF
         mih = mih - 10
         PUT (mih - 10, 410), movil, PSET
      END IF
      IF kbd$ = CHR$(0) + "M" AND mih < 530 THEN
         LINE (mih - 20, 410)-STEP(40, 19), 0, BF
         mih = mih + 10
         PUT (mih - 10, 410), movil, PSET
      END IF
      IF kbd$ = " " AND energia > 0 THEN
         mitn = mitn + 1
         IF mitn > 24 THEN mitn = 1
         PSET (mit(mitn, 1), mit(mitn, 2)), 0
         mit(mitn, 1) = mih + INT(RND * 6) - 3
         mit(mitn, 2) = 408
         mit(mitn, 3) = 1
         LINE (76 + (energia * 2), 343)-STEP(0, 14), 8
         energia = energia - 1
      END IF
      IF kbd$ = CHR$(27) THEN terminado = 1
   END IF
  
   IF RND < .07 AND suenergia > 0 THEN
      sutn = sutn + 1
      IF sutn > 24 THEN sutn = 1
      PSET (sut(sutn, 1), sut(sutn, 2)), 0
      DO
         sut(sutn, 1) = (INT(RND * 19) * 20) + 170
         sut(sutn, 2) = (INT(RND * 16) * 12) + 77
      LOOP UNTIL (POINT(sut(sutn, 1), sut(sutn, 2)) <> 0 AND POINT(sut(sutn, 1), sut(sutn, 2) + 12) = 0)
      sut(sutn, 1) = sut(sutn, 1) + INT(RND * 4) - 2
      sut(sutn, 2) = sut(sutn, 2) + 10
      sut(sutn, 3) = 1
      LINE (76 + (suenergia * 2), 373)-STEP(0, 14), 8
      suenergia = suenergia - 1
   END IF
  
  
   IF terminado = 0 THEN
      FOR n = 1 TO 24
         IF mit(n, 3) = 1 THEN
            'PSET (mit(n, 1), mit(n, 2)), 0
            LINE (mit(n, 1), mit(n, 2))-STEP(0, 2), 0

            mit(n, 2) = mit(n, 2) - 3
            IF POINT(mit(n, 1), mit(n, 2)) <> 0 THEN
               IF mit(n, 2) > 40 AND POINT(mit(n, 1), mit(n, 2)) = 8 THEN
                  PAINT (mit(n, 1), mit(n, 2)), 14, 0
                  objs = objs - 1
                  digital 80, 300, objs, 3, 10, 8, 0
                  PAINT (mit(n, 1), mit(n, 2)), 0, 0
               END IF
               mit(n, 1) = 5
               mit(n, 2) = 5
               mit(n, 3) = 0
               energia = energia + 1
               LINE (76 + (energia * 2), 343)-STEP(0, 14), 10
            ELSE
               LINE (mit(n, 1), mit(n, 2))-STEP(0, 2), 10
            END IF
         END IF
         IF sut(n, 3) = 1 THEN
            LINE (sut(n, 1), sut(n, 2))-STEP(0, -2), 0
            sut(n, 2) = sut(n, 2) + 3
            IF POINT(sut(n, 1), sut(n, 2)) <> 0 THEN
               IF sut(n, 2) < 440 THEN
                  IF POINT(sut(n, 1), sut(n, 2)) <> 10 THEN
                     PAINT (sut(n, 1), sut(n, 2)), 12, 0
                     SOUND 3000, 5
                  ELSE
                     PAINT (sut(n, 1), sut(n, 2)), 14, 0
                     SOUND 300, 3
                     PAINT (sut(n, 1), sut(n, 2)), 0, 0
                  END IF
               END IF
               sut(n, 1) = 5
               sut(n, 2) = 5
               sut(n, 3) = 0
               suenergia = suenergia + 1
               LINE (76 + (suenergia * 2), 373)-STEP(0, 14), 13
            ELSE
               'PSET (sut(n, 1), sut(n, 2)), 15
               LINE (sut(n, 1), sut(n, 2))-STEP(0, -2), 13
            END IF
         END IF
      NEXT
   END IF

LOOP WHILE terminado = 0 AND objs > 0
BEEP


IF objs = 0 THEN
   letras 200, 400, "conseguido", 8, 1, 0, 1, 1
ELSE
   letras 200, 400, "terminado", 8, 1, 0, 1, 1
END IF
FOR v = 393 TO 401
   FOR h = 203 TO 282
      IF POINT(h, v) > 0 THEN
         LINE ((h * 4) - 623, (v * 4) - 1298)-(540, 410), 12
         LINE ((h * 4) - 625, (v * 4) - 1300)-STEP(4, 4), 7, BF
      END IF
   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 12: LOCATE 15, 24: PRINT "J.M.G.B.    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

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

