Funkcionalne ovire

Rok za oddajo: sreda, 16. november 2022, 11.15

Naloga vsebuje teste. Naloga je rešena samo, če prestane vse teste. Poglej navodila za poganjanje testov.

Naloga se nanaša na nalogi prejšnjih dveh tednov: večinoma je potrebno le preoblikovati to, kar ste programirali takrat, v funkcije. Pri reševanju smete uporabiti tudi objavljene rešitve prejšnjih dveh nalog.

Napisati je potrebno naslednje funkcije:

  • stevilo_ovir(ovire) prejme ovire v obliki seznama trojk (x0, x1, y) in vrne število ovir.
  • dolzina_ovir(ovire) vrne skupno dolžino vseh ovir
  • sirina(ovire) vrne širino kolesarke steze, se pravi najbolj desno koordinato v seznamu ovir
  • pretvori_vrstico(vrstica) prejme vrstico v obliki niza, sestavljenega iz znakov # in . ter vrne seznam parov (x0, x1) (ogrevalni del domače naloge prejšnjega tedna)
  • dodaj_vrstico(bloki, y) prejme seznam, kakršnega vrača prejšnja funkcija in neko število y. Vrniti mora seznam, v katerem je vsakemu paru dodan y. Klic dodaj_vrstico([(3, 4), (6, 8), (11, 11)], 3) vrne [(3, 4, 3), (6, 8, 3), (11, 11, 3)].
  • pretvori_zemljevid(zemljevid) dobi zemljevid v obliki seznama nizov in vrne seznam ovir (obvezna domača naloga prejšnjega tedna). Funkcija mora uporabiti prejšnji dve funkciji - testi bodo to preverili tako, da bodo začasno zamenjali tvojo funkcijo z neko drugo, ki vrača napačne številke in preverili, ali so številke res "pravilno napačne".
  • globina(ovire, x) prejme seznam ovir (v obliki trojk) in vrne vrstico, v kateri bi kolesar, ki se vozi po stolpcu x, naletel na oviro (naloga izpred dveh tednov). Če v stolpcu ni ovir, naj vrne None.
  • naj_stolpec(ovire) vrne stolpec, v katerem kolesar pride najdlje in vrstico, do katere pride. Možno je tudi, da v kakem stolpcu ni ovire; v tem primeru vrne koordinato tega stolpca in None.
  • senca(ovire) vrne seznam, katerega elementa so False oz. True glede na to, ali stolpec vsebuje kako oviro ali ne. Če je širina poti 5 in sta drugi in zadnji stolpec brez ovir, vrne [False, True, False, False, True].

Testi