sobota 20. prosince 2014

Vánoční stromeček

Vyhlašuji soutěž o nejkrásnější vánoční stromeček. Ne úplně stromeček samotný, jako spíše kód který ho zobrazuje.

Zde je takový malý textový stromeček:


       *
      ***
     *****
       *
      ***
     *****
    *******
   *********
       *
      ***
     *****
    *******
   *********
  ***********
 *************


parametry = (blockCount:3, growFactor:2, firstBlockSize: 3}


Úkolem je udělat program, který podle daných parametrů vytiskne stromeček do konzole (nebo jinam dle chuti a libosti).  Stromeček se skládá z jednoho a více bloků (trojúhelníků) a každý blok z několika řádků.

Program si bere následující parametry:

block count - požadovaný počet bloků ve výsledném stromečku.
grow factor - o kolik řádků je blok delší než blok předchozí.  V obrázku nahoře si všimněte, že první blok má 3 řádky, druhý 5 a třetí 7. Počet řádků se zvyšuje blok od bloku o dva, tedy grow factor 2.
first block size - počet řádků prvního (horního) bloku.

Problém samotný není složitý, záleží jak k jeho řešení přistoupíte. Přímočaře by ho měl zvládnout bez větších problému prvák, ale s trochou experimentálního přístupu může být zajímavý i pro ostřílené programátory. Hotová řešení mi posílejte nebo rovnou uploadněte na github a pošlete odkaz. Zvláště si cením netradičních řešení se zajímavým nápadem. Volbu jazyka nechám na vás, klidně si to pište třeba v LOLCODE :) Různá vaše řešení si rozebereme zde po Vánocích.

Řešení pro funkcionální drsňáky - nepoužívejte cykly (while, for) a obejděte se i bez mutabilního stavu tzn. v javě používat pouze final proměnné. Využijte rekurze nebo prvků z JAVA 8 (píšete-li v Javě) viz. odkazy níže.

pro drsňáky pár odkazů:
Functional Programming in Java 8 video 
Turorial
Top 10 Java 8 Tutorials








Žádné komentáře:

Okomentovat