< 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
.