Ok vidim šta si radila i većina stvari ti je u redu. Vidim da lepo razumeš kako da koristiš funkcije i crtaš oblike, što je najvažnije. Veći deo zadatka si lepo razumela i super si izrazila sve u relativnim koordinatama. Takođe, vidim da ti ni petlje nisu problem što je sjajno. Ostavio sam ti neke stvari u komentarima u kodu koje sam ti ispravio.
Izbrisao sam ti prozore pošto oni nisu deo ovog zadatka, ako želiš, možeš da probaš da dobudžiš kod tako što ćeš dodati prozore.
Čini mi se da ti je najveći problem bio što si se zapetljala sa vrednostima za boje, kako pri definisanju glavne funkcije, tako i kod crtanja pojedinačnih delova. Ne možeš da koristiš pg.Color () tako što ćeš da navedeš torku od 3 broja kao argument funkcije, na primer pg.Color(10,10,10) će izbaciti grešku. Ta funkcija očekuje da dobije neki string (nisku). Ako želiš da definišeš sopstvene boje, potrebno je da napraviš varijablu i da je koristiš umesto pg.Color(). Na primer možeš da definišeš boju moja_boja = (10, 10, 10 ) i da onda napraviš kvadrat u toj boji tako što ćeš u funkciji za kvadrat umesto pg.Color() da upotrebiš moja_boja - recimo ovako, pg.draw.rect(prozor, moja_boja, (vrata_levo, vrata_gore, sirina_vrata, visina_vrata)). Alternativno, možeš samo da ubaciš torku sa vrednostima za RGB na to mesto -
pg.draw.rect(prozor, (10, 10, 10), (vrata_levo, vrata_gore, sirina_vrata, visina_vrata)).
Ako želiš da ga rešiš kako si ti krenula sa bojama, kreni sa time da u funkcijama gde koristiš boje umesto pg.Color(r1 + 10, g1 + 108, b1 - 125), staviš samo (r1 + 10, g1 + 108, b1 - 125) bez pg.Color. Takođe, onda ćeš morati da vratiš te vrednosti kod definisanja funkcije pošto sam ih ja izbacio u ovom rešenju koje ti šaljem.
Na kraju, pazi kako pišeš množenje. Moraš da staviš znak * između elemenata koje množiš, ne možeš samo da ih spojiš. To sigurno znaš, ali obrati pažnju na to pošto si na nekoliko mesta napravila tu grešku.
Prepravio sam tvoj kod tako da radi kada ga prekopiraš u petljin editor ili fajl kod tebe na računaru. Ovo će ti biti ok polazna tačka, probaj sad da izraziš boje onako kako si ti krenula i da docrtaš prozore.
import math, random
import pygame as pg
import pygamebg
(sirina, visina) = (600, 300) # otvaramo prozor
prozor = pygamebg.open_window(sirina, visina, "Село")
#crta kućicu kojoj je donje levo teme u (x, y)
def kucica(x, y, dim_kucice):
(x0, y0) = (x, y - dim_kucice) # gornje levo teme osnove
# crtamo osnovu kuće
pg.draw.rect(prozor, pg.Color("white"), (x0, y0, dim_kucice, dim_kucice))
# crtamo krov (jednakostranični trougao)
krov_levo = (x0, y0) # donje levo teme krova
krov_desno = (x0 + dim_kucice, y0) # donje desno teme krova
krov_vrh = (x0 + dim_kucice/2.0, y0-dim_kucice*math.sqrt(3.0)/2.0) # ovde si dobro stavila visinu trougla, ali važno je da je oduzmeš od y0 i pazi kako pišeš množenje
pg.draw.polygon(prozor, pg.Color("red"), [krov_levo, krov_desno, krov_vrh])
pg.draw.polygon(prozor, pg.Color("black"), [krov_levo, krov_desno, krov_vrh], 4)
# uokvirujemo osnovu kuće
pg.draw.rect(prozor, pg.Color("black"), (x0, y0, dim_kucice, dim_kucice), 4)
# crtamo vrata
sirina_vrata = dim_kucice/4.0
visina_vrata = dim_kucice/2.0
vrata_levo = x0 + (dim_kucice - sirina_vrata)/2.0 # x koordinata leve ivice vrata
vrata_gore = y0 + dim_kucice/2.0 # y koordinata gornje ivice vrata
pg.draw.rect(prozor, pg.Color("brown"), (vrata_levo, vrata_gore, sirina_vrata, visina_vrata))
pg.draw.rect(prozor, pg.Color("black"), (vrata_levo, vrata_gore, sirina_vrata, visina_vrata), 4)
#bojimo pozadinu u nebo-plavo
prozor.fill(pg.Color("skyblue"))
#crtamo jednu po jednu kućicu
broj_kucica = 5
dim_kucice = sirina / broj_kucica
for i in range(0, broj_kucica, 1):
kucica(0 + i*dim_kucice, visina , dim_kucice) #ovde isto nisi stavila znak za množenje, takođe bolje je da koristiš varijablu visina nego finksnu vrednost visine prozora
#prikazujemo prozor i čekamo da ga korisnik isključi
pygamebg.wait_loop()