Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jaimezambranachacon/087732be92a20d7318ace86ec0faf13a to your computer and use it in GitHub Desktop.
Save jaimezambranachacon/087732be92a20d7318ace86ec0faf13a to your computer and use it in GitHub Desktop.
Patron Prototype con turtle
import turtle
import copy
# Clase base con propiedades y método de dibujo
class FiguraBase:
def __init__(self, color="blue", size=50):
self.color = color
self.size = size
self.t = turtle.Turtle()
self.t.speed(1)
def dibujar(self):
self.t.color(self.color)
for _ in range(4):
self.t.forward(self.size)
self.t.left(90)
def clonar(self):
return copy.deepcopy(self)
# Crear figura original
original = FiguraBase(color="green", size=100)
original.dibujar()
# Clonar la figura y moverla
clon = original.clonar()
clon.t.penup()
clon.t.goto(150, 0)
clon.t.pendown()
clon.dibujar()
# Finalizar dibujo
turtle.done()
@willytorrico
Copy link

willytorrico commented May 28, 2025

import turtle
import copy

class FiguraBase:
def init(self, color="black", size=50):
self.color = color
self.size = size
self.t = turtle.Turtle()
self.t.speed(1)

def dibujar(self, x=0, y=0):
    raise NotImplementedError("Este método debe ser implementado por subclases.")

def clonar(self):
    return copy.deepcopy(self)

class Cuadrado(FiguraBase):
def dibujar(self, x=0, y=0):
self.t.penup()
self.t.goto(x, y)
self.t.pendown()
self.t.color(self.color)
for _ in range(4):
self.t.forward(self.size)
self.t.left(90)

class Circulo(FiguraBase):
def dibujar(self, x=0, y=0):
self.t.penup()
self.t.goto(x, y - self.size)
self.t.pendown()
self.t.color(self.color)
self.t.circle(self.size)
class Triangulo(FiguraBase):
def dibujar(self, x=0, y=0):
self.t.penup()
self.t.goto(x, y)
self.t.pendown()
self.t.color(self.color)
for _ in range(3):
self.t.forward(self.size)
self.t.left(120)

turtle.bgcolor("lightyellow")
cuadro = Cuadrado(color="green", size=100)
circulo = Circulo(color="blue", size=50)
triangulo = Triangulo(color="red", size=80)
cuadro.dibujar(-200, 100)
circulo.dibujar(0, 100)
triangulo.dibujar(200, 100)
clon_cuadro = cuadro.clonar()
clon_cuadro.dibujar(-200, -100)

clon_circulo = circulo.clonar()
clon_circulo.dibujar(0, -100)

clon_triangulo = triangulo.clonar()
clon_triangulo.dibujar(200, -100)
turtle.done()

Captura de pantalla 2025-05-27 195242

@Menbalt516
Copy link

###Anibal Elian Mendoza Baltazar

import turtle
import copy

# Clase base con tipo de figura y método de dibujo
class FiguraBase:
    def __init__(self, color="blue", size=50, forma="cuadrado"):
        self.color = color
        self.size = size
        self.forma = forma  # "cuadrado", "círculo", "triángulo"
        self.t = turtle.Turtle()
        self.t.speed(1)

    def dibujar(self):
        self.t.color(self.color)
        if self.forma == "cuadrado":
            for _ in range(4):
                self.t.forward(self.size)
                self.t.left(90)
        elif self.forma == "triángulo":
            for _ in range(3):
                self.t.forward(self.size)
                self.t.left(120)
        elif self.forma == "círculo":
            self.t.circle(self.size // 2)
        else:
            print("Forma no soportada.")

    def clonar(self):
        return copy.deepcopy(self)

# Crear tres figuras originales
figura1 = FiguraBase(color="red", size=100, forma="cuadrado")
figura2 = FiguraBase(color="green", size=80, forma="triángulo")
figura3 = FiguraBase(color="blue", size=60, forma="círculo")

# Dibujar figuras originales
figura1.dibujar()
figura2.t.penup()
figura2.t.goto(-150, 0)
figura2.t.pendown()
figura2.dibujar()

figura3.t.penup()
figura3.t.goto(0, -150)
figura3.t.pendown()
figura3.dibujar()

# Clonar y mover las figuras
clon1 = figura1.clonar()
clon1.t.penup()
clon1.t.goto(150, 0)
clon1.t.pendown()
clon1.dibujar()

clon2 = figura2.clonar()
clon2.t.penup()
clon2.t.goto(-150, -150)
clon2.t.pendown()
clon2.dibujar()

clon3 = figura3.clonar()
clon3.t.penup()
clon3.t.goto(150, -150)
clon3.t.pendown()
clon3.dibujar()


# Finalizar dibujo
turtle.done()
turtle.mainloop()

image

@curk4444
Copy link

carlos ulises rodriguez Kalayky

import turtle
import copy

# Clase base con propiedades comunes
class FiguraBase:
    def __init__(self, color="blue", size=50, forma="cuadrado"):
        self.color = color
        self.size = size
        self.forma = forma
        self.t = turtle.Turtle()
        self.t.speed(1)

    def dibujar(self):
        self.t.color(self.color)

        if self.forma == "cuadrado":
            for _ in range(4):
                self.t.forward(self.size)
                self.t.left(90)

        elif self.forma == "triángulo":
            for _ in range(3):
                self.t.forward(self.size)
                self.t.left(120)

        elif self.forma == "círculo":
            self.t.circle(self.size)

        else:
            print("Forma no soportada.")

    def clonar(self):
        return copy.deepcopy(self)

# Crear figuras originales
figura1 = FiguraBase(color="red", size=100, forma="cuadrado")
figura2 = FiguraBase(color="blue", size=80, forma="círculo")
figura3 = FiguraBase(color="purple", size=120, forma="triángulo")

# Dibujar figuras originales
figura1.dibujar()
figura2.t.penup()
figura2.t.goto(-200, 0)
figura2.t.pendown()
figura2.dibujar()
figura3.t.penup()
figura3.t.goto(0, -200)
figura3.t.pendown()
figura3.dibujar()

# Clonar y dibujar las figuras en diferentes posiciones
clon1 = figura1.clonar()
clon1.t.penup()
clon1.t.goto(150, 150)
clon1.t.pendown()
clon1.dibujar()

clon2 = figura2.clonar()
clon2.t.penup()
clon2.t.goto(-150, -150)
clon2.t.pendown()
clon2.dibujar()

clon3 = figura3.clonar()
clon3.t.penup()
clon3.t.goto(200, -100)
clon3.t.pendown()
clon3.dibujar()

# Finalizar dibujo
turtle.done()

prototype

@Edgarsu2024
Copy link

###Edgar Subirana Tani

import turtle
import copy
from abc import ABC, abstractmethod

# Clase base abstracta para figuras
class FiguraBase(ABC):
    def __init__(self, color="blue", size=50):
        self.color = color
        self.size = size
        self.t = turtle.Turtle()
        self.t.speed(1)

    @abstractmethod
    def dibujar(self):
        pass

    def clonar(self):
        return copy.deepcopy(self)

# Subclases para diferentes figuras
class Cuadrado(FiguraBase):
    def dibujar(self):
        self.t.color(self.color)
        for _ in range(4):
            self.t.forward(self.size)
            self.t.left(90)

class Triangulo(FiguraBase):
    def dibujar(self):
        self.t.color(self.color)
        for _ in range(3):
            self.t.forward(self.size)
            self.t.left(120)

class Circulo(FiguraBase):
    def dibujar(self):
        self.t.color(self.color)
        self.t.circle(self.size)

# Función para mover y dibujar figuras
def mover_y_dibujar(figura, x, y):
    figura.t.penup()
    figura.t.goto(x, y)
    figura.t.pendown()
    figura.dibujar()

# Función para cerrar con Enter
def cerrar_ventana():
    turtle.bye()

# Crear la pantalla
screen = turtle.Screen()
screen.title("Prototype: Clonación de Figuras")

# Crear figuras originales
cuadro = Cuadrado(color="red", size=100)
triangulo = Triangulo(color="green", size=80)
circulo = Circulo(color="blue", size=50)

# Dibujar figuras originales
mover_y_dibujar(cuadro, -200, 100)
mover_y_dibujar(triangulo, 0, 100)
mover_y_dibujar(circulo, 200, 100)

# Clonar y dibujar en nuevas posiciones
mover_y_dibujar(cuadro.clonar(), -200, -100)
mover_y_dibujar(triangulo.clonar(), 0, -100)
mover_y_dibujar(circulo.clonar(), 200, -100)

# Mostrar mensaje
mensajero = turtle.Turtle()
mensajero.hideturtle()
mensajero.penup()
mensajero.goto(0, 200)
mensajero.color("black")
mensajero.write("Dibujo completo.\nPresiona ENTER o cierra la ventana manualmente.",
                align="center", font=("Arial", 14, "bold"))

# Esperar Enter o cierre manual
screen.listen()
screen.onkey(cerrar_ventana, "Return")
turtle.done()




image

@Nataly495
Copy link

Nataly Zarco Paniagua

...

import turtle
import copy

Clase base con propiedades y método de dibujo

class FiguraBase:
def init(self, forma="cuadrado", color="blue", size=50):
self.forma = forma
self.color = color
self.size = size
self.t = turtle.Turtle()
self.t.speed(1)

def dibujar(self):
    self.t.color(self.color)
    if self.forma == "cuadrado":
        for _ in range(4):
            self.t.forward(self.size)
            self.t.left(90)
    elif self.forma == "circulo":
        self.t.circle(self.size)
    elif self.forma == "triangulo":
        for _ in range(3):
            self.t.forward(self.size)
            self.t.left(120)

def clonar(self):
    return copy.deepcopy(self)

Crear tres figuras diferentes

figura1 = FiguraBase(forma="cuadrado", color="green", size=100)
figura1.dibujar()

figura2 = FiguraBase(forma="circulo", color="red", size=50)
figura2.t.penup()
figura2.t.goto(-150, 0)
figura2.t.pendown()
figura2.dibujar()

figura3 = FiguraBase(forma="triangulo", color="blue", size=80)
figura3.t.penup()
figura3.t.goto(0, -150)
figura3.t.pendown()
figura3.dibujar()

Clonar y mover cada figura

clon1 = figura1.clonar()
clon1.t.penup()
clon1.t.goto(150, 150)
clon1.t.pendown()
clon1.dibujar()

clon2 = figura2.clonar()
clon2.t.penup()
clon2.t.goto(-150, 150)
clon2.t.pendown()
clon2.dibujar()

clon3 = figura3.clonar()
clon3.t.penup()
clon3.t.goto(0, -250)
clon3.t.pendown()
clon3.dibujar()

Evitar que la ventana se cierre inmediatamente

turtle.done()
Imagen de WhatsApp 2025-05-27 a las 20 03 25_45741774

@jose98pp
Copy link

"""
Jose Carlos Peña
``
actividad gis
`import turtle
import copy

###Clase base con propiedades y método de dibujo
class FiguraBase:

def __init__(self, tipo="cuadrado", color="blue", size=50):
    self.tipo = tipo  # Tipo de figura: cuadrado, círculo, triángulo o pentágono
    self.color = color
    self.size = size
    self.t = turtle.Turtle()
    self.t.speed(1)

def dibujar(self):
    self.t.color(self.color)
    if self.tipo == "cuadrado":
        for _ in range(4):
            self.t.forward(self.size)
            self.t.left(90)
    elif self.tipo == "círculo":
        self.t.circle(self.size)
    elif self.tipo == "triángulo":
        for _ in range(3):
            self.t.forward(self.size)
            self.t.left(120)
    elif self.tipo == "pentágono":
        for _ in range(5):
            self.t.forward(self.size)
            self.t.left(72)

def clonar(self):
    return copy.deepcopy(self)

Configurar pantalla

screen = turtle.Screen()
screen.title("Figuras y sus clones")
screen.bgcolor("lightblue") # Color de fondo

Crear y dibujar cuatro figuras diferentes

figura1 = FiguraBase(tipo="cuadrado", color="green", size=100)
figura1.dibujar()

figura2 = FiguraBase(tipo="círculo", color="red", size=60)
figura2.t.penup()
figura2.t.goto(-150, 0)
figura2.t.pendown()
figura2.dibujar()

figura3 = FiguraBase(tipo="triángulo", color="purple", size=80)
figura3.t.penup()
figura3.t.goto(0, 150)
figura3.t.pendown()
figura3.dibujar()

figura4 = FiguraBase(tipo="pentágono", color="orange", size=70)
figura4.t.penup()
figura4.t.goto(-150, 150)
figura4.t.pendown()
figura4.dibujar()

Clonar las figuras y moverlas a nuevas posiciones

clon1 = figura1.clonar()
clon1.t.penup()
clon1.t.goto(150, 150)
clon1.t.pendown()
clon1.dibujar()

clon2 = figura2.clonar()
clon2.t.penup()
clon2.t.goto(-150, -150)
clon2.t.pendown()
clon2.dibujar()

clon3 = figura3.clonar()
clon3.t.penup()
clon3.t.goto(150, -150)
clon3.t.pendown()
clon3.dibujar()

clon4 = figura4.clonar()
clon4.t.penup()
clon4.t.goto(0, -150)
clon4.t.pendown()
clon4.dibujar()

###Función para cerrar la ventana al presionar Enter
def cerrar_ventana():
screen.bye()

Configurar evento para la tecla Enter

screen.listen()
screen.onkey(cerrar_ventana, "Return")

Mantener la ventana abierta hasta que se presione Enter

screen.mainloop()
actividad gis
"""

@Alexmanrio
Copy link

Alex Guzman--------------------------------------------------------------------------------------------ç

import turtle

Clase base con forma dinámica

class FiguraBase:
def init(self, forma="cuadrado", color="blue", size=50):
self.forma = forma.lower()
self.color = color
self.size = size
self.t = turtle.Turtle()
self.t.speed(1)

def dibujar(self):
    self.t.color(self.color)
    self.t.begin_fill()

    if self.forma == "cuadrado":
        for _ in range(4):
            self.t.forward(self.size)
            self.t.left(90)

    elif self.forma == "triangulo":
        for _ in range(3):
            self.t.forward(self.size)
            self.t.left(120)

    elif self.forma == "circulo":
        self.t.circle(self.size)

    else:
        print("Forma no reconocida")

    self.t.end_fill()

def mover_a(self, x, y):
    self.t.penup()
    self.t.goto(x, y)
    self.t.pendown()

def clonar(self):
    # Crear una nueva figura con los mismos atributos
    return FiguraBase(self.forma, self.color, self.size)

Crear figuras originales

cuadro = FiguraBase(forma="cuadrado", color="green", size=100)
cuadro.mover_a(-200, 0)
cuadro.dibujar()

circulo = FiguraBase(forma="circulo", color="red", size=50)
circulo.mover_a(0, 0)
circulo.dibujar()

triangulo = FiguraBase(forma="triangulo", color="blue", size=80)
triangulo.mover_a(200, 0)
triangulo.dibujar()

Clonar figuras y moverlas a otras posiciones

clon_cuadro = cuadro.clonar()
clon_cuadro.mover_a(-200, -150)
clon_cuadro.dibujar()

clon_circulo = circulo.clonar()
clon_circulo.mover_a(0, -150)
clon_circulo.dibujar()

clon_triangulo = triangulo.clonar()
clon_triangulo.mover_a(200, -150)
clon_triangulo.dibujar()

Finalizar dibujo

turtle.done()

Foto----------------------------------------------------------------------------

image

@bereduro
Copy link

"""
BRODY DEIBY VELARDE HURTADO

import turtle
import copy

turtle.bgcolor("#e5f0eb")

class FiguraBase:
def init(self, tipo="cuadrado", color="blue", size=50, width=None):
self.tipo = tipo
self.color = color
self.size = size
self.width = width or size
self.t = turtle.Turtle()
self.t.speed(1)

def dibujar(self):
    self.t.color(self.color)
    if self.tipo == "cuadrado":
        for _ in range(4):
            self.t.forward(self.size)
            self.t.left(90)
    elif self.tipo == "circulo":
        self.t.circle(self.size)
    elif self.tipo == "triangulo":
        for _ in range(3):
            self.t.forward(self.size)
            self.t.left(120)
    elif self.tipo == "rectangulo":
        for _ in range(2):
            self.t.forward(self.width)
            self.t.left(90)
            self.t.forward(self.size)
            self.t.left(90)
    elif self.tipo == "pentagono":
        for _ in range(5):
            self.t.forward(self.size)
            self.t.left(72)

def clonar(self):
    return copy.deepcopy(self)

Crear figuras originales

cuadrado = FiguraBase(tipo="cuadrado", color="green", size=100)
cuadrado.dibujar()

circulo = FiguraBase(tipo="circulo", color="red", size=50)
circulo.t.penup()
circulo.t.goto(-150, 0)
circulo.t.pendown()
circulo.dibujar()

triangulo = FiguraBase(tipo="triangulo", color="blue", size=80)
triangulo.t.penup()
triangulo.t.goto(0, 150)
triangulo.t.pendown()
triangulo.dibujar()

rectangulo = FiguraBase(tipo="rectangulo", color="purple", size=60, width=100)
rectangulo.t.penup()
rectangulo.t.goto(-150, 150)
rectangulo.t.pendown()
rectangulo.dibujar()

pentagono = FiguraBase(tipo="pentagono", color="orange", size=70)
pentagono.t.penup()
pentagono.t.goto(150, 0)
pentagono.t.pendown()
pentagono.dibujar()

Clonar y mover las figuras

clon_cuadrado = cuadrado.clonar()
clon_cuadrado.t.penup()
clon_cuadrado.t.goto(150, -150)
clon_cuadrado.t.pendown()
clon_cuadrado.dibujar()

clon_circulo = circulo.clonar()
clon_circulo.t.penup()
clon_circulo.t.goto(-150, -150)
clon_circulo.t.pendown()
clon_circulo.dibujar()

clon_triangulo = triangulo.clonar()
clon_triangulo.t.penup()
clon_triangulo.t.goto(150, 150)
clon_triangulo.t.pendown()
clon_triangulo.dibujar()

clon_rectangulo = rectangulo.clonar()
clon_rectangulo.t.penup()
clon_rectangulo.t.goto(0, -150)
clon_rectangulo.t.pendown()
clon_rectangulo.dibujar()

clon_pentagono = pentagono.clonar()
clon_pentagono.t.penup()
clon_pentagono.t.goto(0, 0)
clon_pentagono.t.pendown()
clon_pentagono.dibujar()

turtle.done()
"""

@Miguel-Loaiza
Copy link

import turtle
import copy

# Clase base con propiedades y método de dibujo
class FiguraBase:
    def __init__(self, tipo="cuadrado", color="blue", size=50, pos_x=0, pos_y=0):
        self.tipo = tipo
        self.color = color
        self.size = size
        self.pos_x = pos_x
        self.pos_y = pos_y
        self.t = turtle.Turtle()
        self.t.speed(3)
        self.t.penup()
        self.t.goto(self.pos_x, self.pos_y)
        self.t.pendown()

    def dibujar(self):
        self.t.color(self.color)
        if self.tipo == "cuadrado":
            for _ in range(4):
                self.t.forward(self.size)
                self.t.left(90)
        elif self.tipo == "triangulo":
            for _ in range(3):
                self.t.forward(self.size)
                self.t.left(120)
        elif self.tipo == "circulo":
            self.t.circle(self.size)

    def clonar(self, new_x, new_y):
        clon = copy.deepcopy(self)
        clon.t = turtle.Turtle()  # Se crea una nueva instancia de Turtle
        clon.t.speed(3)
        clon.t.penup()
        clon.t.goto(new_x, new_y)
        clon.t.pendown()
        return clon

# Configurar pantalla
turtle.setup(800, 600)

# Crear figuras originales en posiciones alineadas horizontalmente
figura1 = FiguraBase(tipo="cuadrado", color="green", size=100, pos_x=-150, pos_y=0)
figura1.dibujar()

figura2 = FiguraBase(tipo="triangulo", color="red", size=100, pos_x=0, pos_y=0)
figura2.dibujar()

figura3 = FiguraBase(tipo="circulo", color="black", size=50, pos_x=150, pos_y=0)
figura3.dibujar()

# Clonar figuras y moverlas a nuevas posiciones
clon1 = figura1.clonar(-150, -150)
clon1.dibujar()

clon2 = figura2.clonar(0, -150)
clon2.dibujar()

clon3 = figura3.clonar(150, -150)
clon3.dibujar()

# Finalizar dibujo
turtle.done()

IMG-20250527-WA0124

@bereduro
Copy link

bereduro commented May 28, 2025

BRODY DEIBY VELARDE HURTADO


import turtle
import copy

turtle.bgcolor("#e5f0eb")

class FiguraBase:
    def __init__(self, tipo="cuadrado", color="blue", size=50, width=None):
        self.tipo = tipo
        self.color = color
        self.size = size
        self.width = width or size
        self.t = turtle.Turtle()
        self.t.speed(1)

    def dibujar(self):
        self.t.color(self.color)
        if self.tipo == "cuadrado":
            for _ in range(4):
                self.t.forward(self.size)
                self.t.left(90)
        elif self.tipo == "circulo":
            self.t.circle(self.size)
        elif self.tipo == "triangulo":
            for _ in range(3):
                self.t.forward(self.size)
                self.t.left(120)
        elif self.tipo == "rectangulo":
            for _ in range(2):
                self.t.forward(self.width)
                self.t.left(90)
                self.t.forward(self.size)
                self.t.left(90)
        elif self.tipo == "pentagono":
            for _ in range(5):
                self.t.forward(self.size)
                self.t.left(72)

    def clonar(self):
        return copy.deepcopy(self)


cuadrado = FiguraBase(tipo="cuadrado", color="green", size=100)
cuadrado.dibujar()

circulo = FiguraBase(tipo="circulo", color="red", size=50)
circulo.t.penup()
circulo.t.goto(-150, 0)
circulo.t.pendown()
circulo.dibujar()

triangulo = FiguraBase(tipo="triangulo", color="blue", size=80)
triangulo.t.penup()
triangulo.t.goto(0, 150)
triangulo.t.pendown()
triangulo.dibujar()

rectangulo = FiguraBase(tipo="rectangulo", color="purple", size=60, width=100)
rectangulo.t.penup()
rectangulo.t.goto(-150, 150)
rectangulo.t.pendown()
rectangulo.dibujar()

pentagono = FiguraBase(tipo="pentagono", color="orange", size=70)
pentagono.t.penup()
pentagono.t.goto(150, 0)
pentagono.t.pendown()
pentagono.dibujar()


clon_cuadrado = cuadrado.clonar()
clon_cuadrado.t.penup()
clon_cuadrado.t.goto(150, -150)
clon_cuadrado.t.pendown()
clon_cuadrado.dibujar()

clon_circulo = circulo.clonar()
clon_circulo.t.penup()
clon_circulo.t.goto(-150, -150)
clon_circulo.t.pendown()
clon_circulo.dibujar()

clon_triangulo = triangulo.clonar()
clon_triangulo.t.penup()
clon_triangulo.t.goto(150, 150)
clon_triangulo.t.pendown()
clon_triangulo.dibujar()

clon_rectangulo = rectangulo.clonar()
clon_rectangulo.t.penup()
clon_rectangulo.t.goto(0, -150)
clon_rectangulo.t.pendown()
clon_rectangulo.dibujar()

clon_pentagono = pentagono.clonar()
clon_pentagono.t.penup()
clon_pentagono.t.goto(0, 0)
clon_pentagono.t.pendown()
clon_pentagono.dibujar()


turtle.done()

imagen

@Luisrene12
Copy link

Luisrene12 commented May 28, 2025

Luis Rene Sequeiro

import turtle
import copy

# Clase base: Prototype para figuras
class FiguraBase:
    def _init_(self, color="blue", size=50, forma="cuadrado"):
        self.color = color
        self.size = size
        self.forma = forma
        self.t = turtle.Turtle()
        self.t.speed(2)

    def dibujar(self):
        self.t.color(self.color)
        if self.forma == "cuadrado":
            for _ in range(4):
                self.t.forward(self.size)
                self.t.left(90)
        elif self.forma == "círculo":
            self.t.circle(self.size)
        elif self.forma == "triángulo":
            for _ in range(3):
                self.t.forward(self.size)
                self.t.left(120)

    def clonar(self):
        return copy.deepcopy(self)

    def mover_a(self, x, y):
        self.t.penup()
        self.t.goto(x, y)
        self.t.pendown()

# Crear pantalla
pantalla = turtle.Screen()
pantalla.bgcolor("lightgray")
pantalla.title("Patrón Prototype con Turtle")

# Crear 3 figuras diferentes
figura1 = FiguraBase(color="green", size=100, forma="cuadrado")
figura1.mover_a(-200, 100)
figura1.dibujar()

figura2 = FiguraBase(color="red", size=50, forma="círculo")
figura2.mover_a(0, 100)
figura2.dibujar()

figura3 = FiguraBase(color="blue", size=80, forma="triángulo")
figura3.mover_a(200, 100)
figura3.dibujar()

# Clonar y mover cada figura
clon1 = figura1.clonar()
clon1.mover_a(-200, -100)
clon1.dibujar()

clon2 = figura2.clonar()
clon2.mover_a(0, -100)
clon2.dibujar()

clon3 = figura3.clonar()
clon3.mover_a(200, -100)
clon3.dibujar()

# Finalizar
turtle.done()

WhatsApp Image 2025-05-27 at 19 47 00_b7e1d50b

@JronaldoA21
Copy link

JronaldoA21 commented May 28, 2025

Jhon Ronaldo Guillermo Alonzo Mamani


import tule
import copy

turtle.bgcolor("#e5f0eb")

class FiguraBase:
    def __init__(self, tipo="cuadrado", color="blue", size=50, width=None):
        self.tipo = tipo
        self.color = color
        self.size = size
        self.width = width or size
        self.t = turtle.Turtle()
        self.t.speed(1)

    def dibujar(self):
        self.t.color(self.color)
        if self.tipo == "cuadrado":
            for _ in range(4):
                self.t.forward(self.size)
                self.t.left(90)
        elif self.tipo == "circulo":
            self.t.circle(self.size)
        elif self.tipo == "triangulo":
            for _ in range(3):
                self.t.forward(self.size)
                self.t.left(120)
        elif self.tipo == "rectangulo":
            for _ in range(2):
                self.t.forward(self.width)
                self.t.left(90)
                self.t.forward(self.size)
                self.t.left(90)
        elif self.tipo == "pentagono":
            for _ in range(5):
                self.t.forward(self.size)
                self.t.left(72)

    def clonar(self):
        return copy.deepcopy(self)


cuadrado = FiguraBase(tipo="cuadrado", color="green", size=100)
cuadrado.t.penup()
cuadrado.t.goto(-100, 150)
cuadrado.t.pendown()
cuadrado.dibujar()

circulo = FiguraBase(tipo="circulo", color="red", size=50)
circulo.t.penup()
circulo.t.goto(100, 150)
circulo.t.pendown()
circulo.dibujar()

triangulo = FiguraBase(tipo="triangulo", color="blue", size=80)
triangulo.t.penup()
triangulo.t.goto(-150, -150)
triangulo.t.pendown()
triangulo.dibujar()

rectangulo = FiguraBase(tipo="rectangulo", color="purple", size=60, width=100)
rectangulo.t.penup()
rectangulo.t.goto(0, -150)
rectangulo.t.pendown()
rectangulo.dibujar()

pentagono = FiguraBase(tipo="pentagono", color="orange", size=70)
pentagono.t.penup()
pentagono.t.goto(150, -150)
pentagono.t.pendown()
pentagono.dibujar()

clon_cuadrado = cuadrado.clonar()
clon_cuadrado.t.penup()
clon_cuadrado.t.goto(-200, 50)
clon_cuadrado.t.pendown()
clon_cuadrado.dibujar()

clon_circulo = circulo.clonar()
clon_circulo.t.penup()
clon_circulo.t.goto(200, 50)
clon_circulo.t.pendown()
clon_circulo.dibujar()

clon_triangulo = triangulo.clonar()
clon_triangulo.t.penup()
clon_triangulo.t.goto(-200, -50)
clon_triangulo.t.pendown()
clon_triangulo.dibujar()

clon_rectangulo = rectangulo.clonar()
clon_rectangulo.t.penup()
clon_rectangulo.t.goto(0, -50)
clon_rectangulo.t.pendown()
clon_rectangulo.dibujar()

clon_pentagono = pentagono.clonar()
clon_pentagono.t.penup()
clon_pentagono.t.goto(200, -50)
clon_pentagono.t.pendown()
clon_pentagono.dibujar()

turtle.done()

foto dia madre progra

@JadeFloresprogra4
Copy link

,,,
Jade Flores

import turtle
import copy

class FiguraBase:
def init(self, forma="cuadrado", color="blue", size=50):
self.forma = forma
self.color = color
self.size = size
self.t = turtle.Turtle()
self.t.speed(1)

def dibujar(self):
    self.t.color(self.color)

    if self.forma == "cuadrado":
        for _ in range(4):
            self.t.forward(self.size)
            self.t.left(90)

    elif self.forma == "triangulo":
        for _ in range(3):
            self.t.forward(self.size)
            self.t.left(120)

    elif self.forma == "circulo":
        self.t.circle(self.size)

    else:
        print("Forma no reconocida.")

def clonar(self):
    return copy.deepcopy(self)

Crear figuras originales

cuadrado = FiguraBase(forma="cuadrado", color="red", size=100)
triangulo = FiguraBase(forma="triangulo", color="green", size=120)
circulo = FiguraBase(forma="circulo", color="blue", size=60)

Posicionar y dibujar figuras originales

cuadrado.t.penup()
cuadrado.t.goto(-200, 100)
cuadrado.t.pendown()
cuadrado.dibujar()

triangulo.t.penup()
triangulo.t.goto(0, 100)
triangulo.t.pendown()
triangulo.dibujar()

circulo.t.penup()
circulo.t.goto(200, 100)
circulo.t.pendown()
circulo.dibujar()

Clonar y dibujar las figuras en otra posición

clon_cuadrado = cuadrado.clonar()
clon_cuadrado.t.penup()
clon_cuadrado.t.goto(-200, -150)
clon_cuadrado.t.pendown()
clon_cuadrado.dibujar()

clon_triangulo = triangulo.clonar()
clon_triangulo.t.penup()
clon_triangulo.t.goto(0, -150)
clon_triangulo.t.pendown()
clon_triangulo.dibujar()

clon_circulo = circulo.clonar()
clon_circulo.t.penup()
clon_circulo.t.goto(200, -150)
clon_circulo.t.pendown()
clon_circulo.dibujar()

turtle.done()

,,,
Captura de pantalla (36)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment