====== Ulice plná domečků ======
Jednoduchá úloha pro začínající programátory. Spíše procvičování programování než řešení problému.
===== Úkol =====
Vaším úkolem je v souboru **''solver.py''** naprogramovat funkci **''houses()''**, která bude vracet řetězec, jenž po vytisknutí vytvoří "grafickou" reprezentaci domečků v ulici (pomocí znaků, viz níže). Vstupem funkce bude plán ulice, což je opět řetězec sestávající ze 3 možných znaků: ''o'' (malé o) představující "prázdný" domeček, ''x'' (malé x) představující "proškrtnutý" domeček a "_" (podtžítko) představující mezeru mezi domečky (volnou parcelu).
===== Rozměry domečků =====
Domeček má základnu širokou 9 křížků, zdi z 9 křížků na sobě a střecha jde do výšky 4 křížků.
Stojí-li domečky vedle sebe, sdílejí společnou zeď.
Lépe vám napoví příklady níže.
===== Příklady =====
Příklady volání funkce ''houses()'' a výpisu jejího výstupu vám osvětlí, jak by se funkce měla chovat.
==== Jediný domeček (parcela) ====
++++ Konfigurace o |
>>> print(houses('o'))
#
# #
# #
# #
#########
# #
# #
# #
# #
# #
# #
# #
#########
++++
++++ Konfigurace x |
>>> print(houses('x'))
#
# #
# #
# #
#########
## ##
# # # #
# # # #
# # #
# # # #
# # # #
## ##
#########
++++
++++ Konfigurace _ |
>>> print(houses('_'))
#########
++++
==== Několik domečků (parcel) vedle sebe ====
Když stavíme domečky vedle sebe, mají vždy společnou zeď mezi sebou (jedná se o řadové domky a 2 zdi by byly zbytečné).
A stejně pokud je mezi domky jen parcela (nebo je vedle sebe víc parcel), mají zeď nebo hraniční křížek parcely společný.
++++ Konfigurace xoxox |
>>> print(houses('xoxox'))
# # # # #
# # # # # # # # # #
# # # # # # # # # #
# # # # # # # # # #
#########################################
## ## ## ## ## ##
# # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # #
## ## ## ## ## ##
#########################################
++++
++++ Konfigurace _xo_ox_ |
>>> print(houses('_xo_ox_'))
# # # #
# # # # # # # #
# # # # # # # #
# # # # # # # #
################# #################
## ## # # ## ##
# # # # # # # # # #
# # # # # # # # # #
# # # # # # # #
# # # # # # # # # #
# # # # # # # # # #
## ## # # ## ##
#########################################################
++++
===== Bodování =====
Funkce bude otestována na několika předem daných a několika náhodně vygenerovaných konfiguracích ulic. Podle poměru správně vygenerovaných výstupů a celkového počtu testů bude kód odměněn příslušnou částí maximálního počtu bodů.