< Předchozí krok | Hlavní stránka | Další krok >
V předchozí úloze jste vytvořili funkci, která umí sesypat jeden řádek hracího pole k levému okraji. Cílem této úlohy je vytvořit funkci, která sesype celé hrací pole (tj. všechny 4 řádky nebo sloupce) k určenému okraji (levému, pravému, hornímu, nebo dolnímu).
| Prerekvizity | Funkce numbers_to_left() pro sesypání řádku k levému okraji. |
|---|---|
| Náročnost přemýšlení | Nízká |
| Náročnost programování | Střední (2D pole, for-cykly, podmínky) |
Udělejte si záložní kopii vašeho modulu simulator.py!
simulator.py. POZOR, ať si jím nepřemažete vlastní řešení předchozích kroků, které už máte v simulator.py, pokud jste si ještě nevytvořili záložní kopii!
simulator.py zkopírujte do kostry modulu simulator.py řešení předchozích kroků.
simulator.py doplňte funkci move_tiles podle níže uvedených specifikací.
tests_step.py, bude postupně vaši funkci testovat na několika předdefinovaných konfiguracích hrací plochy.
simulator.py s vámi doplněným tělem funkce odešlete do odevzdávacího systému.
Funkce move_tiles() musí splňovat následující kontrakt:
| Vstupy | in_board | Seznam 4 seznamů 4 číslic reprezentující výchozí konfiguraci hrací plochy. |
|---|---|---|
direction | Směr, kam se mají dlaždice sesypat. Jeden z řetězců left, right, up, down. |
|
| Výstupy | out_board | Seznam 4 seznamů 4 čísel reprezentující výslednou konfiguraci hrací plochy po sesypání v daném směru |
score | Číslo reprezentující přírustek skóre za tento tah, tj. celkové skóre za sesypání 4 řádků, nebo 4 sloupců. |
Důležité: move_tiles() implementujte jako čistou funkci!
numbers_to_left() z minulé podúlohy.
reversed():>>> a = [1,2,3] >>> b = list(reversed(a)) >>> b [3, 2, 1]
nebo metoda seznamu reverse():
>>> a = [1,2,3] >>> a.reverse() >>> a [3, 2, 1]
get_column(board, i) a set_column(board, i, column), které vám umožní extrahovat i. sloupec hrací plochy ve formě seznamu, resp. nastavit hodnoty i. sloupce hrací plochy na hodnoty předané v seznamu column.