def dibujarCuadrado(x0, y0): x0, y0 = reducirConModulo(x0, y0) cambiarEstado(x0, y0, 1) cambiarEstado(x0 + 1, y0, 1) cambiarEstado(x0 + 1, y0 + 1, 1) cambiarEstado(x0, y0 + 1, 1) pass
def dibujarAutomataEscarabajo(x0,y0): x0,y0 = reducirConModulo(x0, y0) for y in range(y0-6,y0+7): for x in range(x0-6,x0+7): cambiarEstado(x, y, 0) dibujarAutomataPalo3(x0 -3, y0 +1, False) dibujarAutomataPalo3(x0 -3, y0 -1, False) dibujarAutomataPalo3(x0 +3, y0 +1, False) dibujarAutomataPalo3(x0 +3, y0 -1, False) dibujarAutomataPalo3(x0 -1, y0 +3) dibujarAutomataPalo3(x0 -1, y0 -3) dibujarAutomataPalo3(x0 +1, y0 +3) dibujarAutomataPalo3(x0 +1, y0 -3) dibujarAutomataPalo3(x0 -3, y0 -6, False) dibujarAutomataPalo3(x0 -3, y0 +6, False) dibujarAutomataPalo3(x0 +3, y0 -6, False) dibujarAutomataPalo3(x0 +3, y0 +6, False) dibujarAutomataPalo3(x0 -6, y0 -3) dibujarAutomataPalo3(x0 -6, y0 +3) dibujarAutomataPalo3(x0 +6, y0 -3) dibujarAutomataPalo3(x0 +6, y0 +3) pass
def dibujarAutomataGeneradorDeslizadores(x0, y0, NumeroCuadranteAlQueApunta): x0, y0 = reducirConModulo(x0, y0) ejeY, ejeX = 21, 6 puntosVivos = [ (0, 5), (0, 6), (1, 5), (1, 6), (5, 3), (5, 4), (10, 2), (10, 3), (10, 7), (10, 8), (11, 3), (11, 4), (11, 5), (11, 6), (11, 7), (12, 3), (12, 4), (12, 6), (12, 7), (13, 3), (13, 4), (13, 6), (13, 7), (14, 4), (14, 5), (14, 6), (22, 3), (23, 2), (23, 3), (23, 4), (24, 1), (24, 2), (24, 3), (24, 4), (24, 5), (25, 0), (25, 2), (25, 4), (25, 6), (26, 0), (26, 1), (26, 5), (26, 6), (29, 3), (30, 2), (30, 4), (31, 2), (31, 4), (32, 3), (33, 3), (33, 4), (34, 3), (34, 4), (35, 3), (35, 4) ] if NumeroCuadranteAlQueApunta == 3: puntosVivos = simetria(puntosVivos, ejeY, ejeX, True, False) elif NumeroCuadranteAlQueApunta == 1: puntosVivos = simetria(puntosVivos, ejeY, ejeX, False, True) elif NumeroCuadranteAlQueApunta == 2: puntosVivos = simetria(puntosVivos, ejeY, ejeX, True, True) else: puntosVivos = simetria(puntosVivos, ejeY, ejeX, False, False) for x, y in puntosVivos: cambiarEstado(x0 + x, y0 + y, 1) pass
def dibujarNoria(x0,y0): x0,y0 = reducirConModulo(x0, y0) for y in range(y0, y0 +8): for x in range(x0, x0 +8): cambiarEstado(x, y, 0) cambiarEstado(x0 , y0 +4, 1) cambiarEstado(x0 +1, y0 +4, 1) cambiarEstado(x0 +3, y0 , 1) cambiarEstado(x0 +3, y0 +1, 1) cambiarEstado(x0 +6, y0 +3, 1) cambiarEstado(x0 +7, y0 +3, 1) cambiarEstado(x0 +4, y0 +6, 1) cambiarEstado(x0 +4, y0 +7, 1) cambiarEstado(x0 +1, y0 +2, 1) cambiarEstado(x0 +2, y0 +6, 1) cambiarEstado(x0 +5, y0 +1, 1) cambiarEstado(x0 +6, y0 +5, 1) pass
def dibujarAutomataPalo10(x0, y0, vertical = True): x0,y0 = reducirConModulo(x0, y0) for i in range(0,10): if vertical: cambiarEstado(x0, y0 +i, 1) else: cambiarEstado(x0 +i, y0, 1) pass
def dibujarAutomataMovilArribaIzda(x0, y0): x0, y0 = reducirConModulo(x0, y0) for y in range(y0 - 1, y0 + 2): for x in range(x0 - 1, x0 + 2): cambiarEstado(x, y, 0) cambiarEstado(x0 - 1, y0 - 1, 1) cambiarEstado(x0, y0 - 1, 1) cambiarEstado(x0 + 1, y0 - 1, 1) cambiarEstado(x0 - 1, y0, 1) cambiarEstado(x0, y0 + 1, 1) pass
def dibujar4AutomatasMoviles(x0, y0): x0, y0 = reducirConModulo(x0, y0) for y in range(y0 - 4, y0 + 5): for x in range(x0 - 4, x0 + 5): cambiarEstado(x, y, 0) dibujarAutomataMovilArribaIzda(x0 - 3, y0 - 3) dibujarAutomataMovilArribaDcha(x0 + 3, y0 - 3) dibujarAutomataMovilAbajoIdza(x0 - 3, y0 + 3) dibujarAutomataMovilAbajoDcha(x0 + 3, y0 + 3) pass
def dibujarAutomataPalo3(x0,y0,vertical=True): x0,y0 = reducirConModulo(x0, y0) for y in range(y0-1,y0+2): for x in range(x0-1,x0+2): cambiarEstado(x, y, 0) cambiarEstado(x0, y0, 1) if not vertical: cambiarEstado(x0+1, y0, 1) cambiarEstado(x0-1, y0, 1) else: cambiarEstado(x0, y0+1, 1) cambiarEstado(x0, y0-1, 1) pass
def dibujarAutomataMovilHorizontalGrande(x0, y0, reverse=False): x0, y0 = reducirConModulo(x0, y0) for y in range(y0, y0 + 4): for x in range(x0, x0 + 6): cambiarEstado(x0 + 5, y, 0) dibujarAutomataMovilHorizontal(x0 + 1, y0, reverse) if not reverse: cambiarEstado(x0 + 1, y0, 1) cambiarEstado(x0, y0 + 1, 1) cambiarEstado(x0, y0 + 2, 1) else: cambiarEstado(x0 + 5, y0, 1) cambiarEstado(x0 + 6, y0 + 1, 1) cambiarEstado(x0 + 6, y0 + 2, 1)
def dibujarAutomataMovilVerticalGrande(x0, y0, reverse=False): x0, y0 = reducirConModulo(x0, y0) for x in range(x0, x0 + 4): cambiarEstado(x, y0 + 5, 0) dibujarAutomataMovilVertical(x0, y0, reverse) if not reverse: cambiarEstado(x0, y0 + 4, 1) cambiarEstado(x0 + 1, y0 + 5, 1) cambiarEstado(x0 + 2, y0 + 5, 1) else: cambiarEstado(x0, y0 + 1, 1) cambiarEstado(x0 + 1, y0, 1) cambiarEstado(x0 + 2, y0, 1) pass
def dibujarTortuga(x0, y0, reverse = False): x0,y0 = reducirConModulo(x0, y0) for y in range(y0, y0 +6): for x in range(x0, x0 +7): cambiarEstado(x, y, 0) cambiarEstado(x0 +2, y0 +1, 1) cambiarEstado(x0 +2, y0 +2, 1) cambiarEstado(x0 +2, y0 +3, 1) cambiarEstado(x0 +2, y0 +4, 1) cambiarEstado(x0 +4, y0 +1, 1) cambiarEstado(x0 +4, y0 +2, 1) cambiarEstado(x0 +4, y0 +3, 1) cambiarEstado(x0 +4, y0 +4, 1) cambiarEstado(x0 +1, y0 , 1) cambiarEstado(x0 +1, y0 +5, 1) cambiarEstado(x0 +5, y0 , 1) cambiarEstado(x0 +5, y0 +5, 1) if not reverse: cambiarEstado(x0 , y0 +3, 1) cambiarEstado(x0 , y0 +4, 1) cambiarEstado(x0 , y0 +5, 1) cambiarEstado(x0 +6, y0 +3, 1) cambiarEstado(x0 +6, y0 +4, 1) cambiarEstado(x0 +6, y0 +5, 1) cambiarEstado(x0 +1, y0 +1, 1) cambiarEstado(x0 +2, y0 , 1) cambiarEstado(x0 +4, y0 , 1) cambiarEstado(x0 +5, y0 +1, 1) else: cambiarEstado(x0 , y0 , 1) cambiarEstado(x0 , y0 +1, 1) cambiarEstado(x0 , y0 +2, 1) cambiarEstado(x0 +6, y0 , 1) cambiarEstado(x0 +6, y0 +1, 1) cambiarEstado(x0 +6, y0 +2, 1) cambiarEstado(x0 +1, y0 +4, 1) cambiarEstado(x0 +2, y0 +5, 1) cambiarEstado(x0 +4, y0 +5, 1) cambiarEstado(x0 +5, y0 +4, 1) pass
def dibujarAutoomatainvomil8(x0, y0, reversed=False): x0, y0 = reducirConModulo(x0, y0) for y in range(y0 - 1, y0 + 2): for x in range(x0 - 1, x0 + 2): cambiarEstado(x, y, 0) cambiarEstado(x0 + 1, y0, 1) cambiarEstado(x0 - 1, y0, 1) cambiarEstado(x0, y0 + 1, 1) cambiarEstado(x0, y0 - 1, 1) if not reversed: cambiarEstado(x0 + 1, y0 - 1, 1) cambiarEstado(x0 - 1, y0 + 1, 1) else: cambiarEstado(x0 + 1, y0 + 1, 1) cambiarEstado(x0 - 1, y0 - 1, 1) pass
def dibujarBarco(x0, y0, NumeroCuadranteAlQueApunta): x0, y0 = reducirConModulo(x0, y0) for y in range(y0 - 1, y0 + 2): for x in range(x0 - 1, x0 + 2): cambiarEstado(x, y, 0) cambiarEstado(x0 + 1, y0 + 1, 1) cambiarEstado(x0 + 1, y0 - 1, 1) cambiarEstado(x0 - 1, y0 - 1, 1) cambiarEstado(x0 - 1, y0 + 1, 1) if NumeroCuadranteAlQueApunta == 1: cambiarEstado(x0 + 1, y0 - 1, 1) elif NumeroCuadranteAlQueApunta == 3: cambiarEstado(x0 - 1, y0 + 1, 1) elif NumeroCuadranteAlQueApunta == 4: cambiarEstado(x0 + 1, y0 + 1, 1) else: cambiarEstado(x0 - 1, y0 - 1, 1) pass
def dibujarCuadradoInmovilGigante(x0, y0): x0, y0 = reducirConModulo(x0, y0) for y in range(y0 - 7, y0 + 8): for x in range(x0 - 7, x0 + 8): cambiarEstado(x, y, 0) dibujarAutoomatainvomil8(x0 - 2, y0 - 2) dibujarAutoomatainvomil8(x0 + 2, y0 - 2, True) dibujarAutoomatainvomil8(x0 + 2, y0 + 2) dibujarAutoomatainvomil8(x0 - 2, y0 + 2, True) dibujarCuadrado(x0 - 6, y0 - 2) dibujarCuadrado(x0 - 6, y0 + 1) dibujarCuadrado(x0 + 5, y0 - 2) dibujarCuadrado(x0 + 5, y0 + 1) dibujarCuadrado(x0 - 2, y0 - 6) dibujarCuadrado(x0 - 2, y0 + 5) dibujarCuadrado(x0 + 1, y0 - 6) dibujarCuadrado(x0 + 1, y0 + 5) pass
def dibujarAutomataRana(x0,y0,reverse=False): x0,y0 = reducirConModulo(x0, y0) for y in range(y0-3, y0+4): for x in range(x0-2, x0+3): cambiarEstado(x, y, 0) cambiarEstado(x0, y0 -2, 1) cambiarEstado(x0, y0 +2, 1) if not reverse: cambiarEstado(x0 +1, y0 -1, 1) cambiarEstado(x0 +1, y0 , 1) cambiarEstado(x0 +1, y0 +1, 1) cambiarEstado(x0 +2, y0 -1, 1) cambiarEstado(x0 +2, y0 , 1) cambiarEstado(x0 +2, y0 +1, 1) cambiarEstado(x0 -2, y0 -2, 1) cambiarEstado(x0 -2, y0 -3, 1) cambiarEstado(x0 -2, y0 +2, 1) cambiarEstado(x0 -2, y0 +3, 1) else: cambiarEstado(x0 -1, y0 -1, 1) cambiarEstado(x0 -1, y0 , 1) cambiarEstado(x0 -1, y0 +1, 1) cambiarEstado(x0 -2, y0 -1, 1) cambiarEstado(x0 -2, y0 , 1) cambiarEstado(x0 -2, y0 +1, 1) cambiarEstado(x0 +2, y0 -2, 1) cambiarEstado(x0 +2, y0 -3, 1) cambiarEstado(x0 +2, y0 +2, 1) cambiarEstado(x0 +2, y0 +3, 1) pass