import turtle
import math
s = turtle.getscreen()
t = turtle.Turtle()
turtle.speed(0)
print("Méret: ")
a = int(input())
# A méret az egész háromszög mérete nem a négyzet élének mérete!! Szerintem így esztétikusabb, könnyebb megadni a kívánt dimenziót
print("Szint: ")
szint = int(input())
emelet = 2**(szint-1)
s.tracer(0,0)#Ez a sor a rajzolást gyorsítja
#x,y jelentse az objektum bal alsó sarkának koordinátáit
def negyzet(x,y,a,sz):  #négyzetet rajzoló függvény ahol a az oldalhossz, sz a szín
    t.penup()
    t.goto(x,y)
    t.pendown()
    t.fillcolor(sz)
    t.begin_fill()
    t.forward(a)
    t.left(90)
    t.forward(a)
    t.left(90)
    t.forward(a)
    t.left(90)
    t.forward(a)
    t.left(90)
    t.end_fill()
def alap1(x,y,a):#ez igazából az első szint, ezt fogjuk másolgatni, "a" a négyzet oldalhossza
    t.penup
    negyzet(x,y,a,"red")
    negyzet(x+a,y,a,"green1")
    negyzet(x+(a/2),y+a,a,"blue")
def minta1(emelet,meret):#megrajzolja a kivant serpinski haromszoget a pascal haromszog hasznalataval
    for i in range(emelet):
        for j in range(emelet-i):
            if math.comb(emelet-i-1,j)%2==1:#n alatt a k , ha ez páratlan akkor oda másoljuk az alapot
                alap1((i+j/2)*2*meret/emelet,2*j*meret/emelet,meret/emelet)
def alap2(x,y,meret,sz):#kisértetiesen hasonló az előző függvényekhez, csak a szín a minta2 függvényben választódik ki
    t.penup
    negyzet(x,y,meret,sz)
    negyzet(x+meret,y,meret,sz)
    negyzet(x+(meret/2),y+meret,meret,sz)
def minta2(emelet,meret): 
    for i in range(emelet):
        for j in range(emelet-i):
            if math.comb(emelet-i-1,j)%2==1:
                if i>=emelet/2:
                    sz = "blue"
                else:
                    if j>=emelet/2:
                        sz = "green1"
                    else:
                        sz="red"    
                
                alap2((i+j/2)*2*meret/emelet,2*j*meret/emelet,meret/emelet,sz)
print("minta1 vagy minta2 (1) vagy (2) ")
mod=input()
if mod =="2":
    minta2(emelet*2,a)
else:
    minta1(emelet,a)
s.update()
turtle.done()