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