.. module:: castellers Castellers de la colla Moments Estàtics ======================================= La colla de castellers **Moments estàtics** té les dades dels seus castellers en un *fitxer de posicions*. Al *fitxer de posicions* hi ha una línia per cada casteller on hi ha el nom i una sèrie de posicions que pot ocupar el casteller. Per exemple, la línia:: Guifré dosos tresos pinya indica que el casteller ``Guifré`` pot ocupar les posicions de ``dosos``, ``tresos`` o ``pinya``. El fitxer :download:`colla.txt` n'és un exemple. Pots veure'n les primeres línies a continuació: .. literalinclude:: colla.txt :language: console :lines: 1-5 L'objectiu és dissenyar la funció :func:`lacolla` que rep el nom d'un fitxer com el descrit i retorna un *diccionari de posicions*. Cadascuna de les claus d'un *diccionari de posicions* és el nom d'una posició i el valor corresponent és la llista dels castellers que poden ocupar aquella posició, ordenada alfabèticament. Si per alguna posició no hi ha cap casteller aquesta posició no ha d'apareixer al diccionari. Però abans, dissenya les funcions següents i desa-les al fitxer :file:`castellers.py`. .. function:: actualitza_dic_posicions(dp, nom, posicions) `dp` és un *diccionari de posicions*. `nom` (:class:`str`) és el nom d'un casteller. `posicions` és una llista de posicions (:class:`str`) La funció **modica** `dp` afegint el casteller `nom` a cada una de les posicions de la llista `posicions`. Per exemple: .. literalinclude:: test-actualitza_dic_posicions.txt :language: pycon :start-after: ---- inici :end-before: ---- fi Trobaràs més tests al fitxer :download:`test-actualitza_dic_posicions.txt`. | .. function:: ordena_dic_posicions(dp) `dp` és un *diccionari de posicions*. La funció **modica** `dp` ordenant alfabèticament la llista de noms de castellers de cada una de les posicions. Per exemple: .. literalinclude:: test-ordena_dic_posicions.txt :language: pycon :start-after: ---- inici :end-before: ---- fi Trobaràs més tests al fitxer :download:`test-ordena_dic_posicions.txt`. Ara ja pots dissenyar la funció :func:`lacolla`. .. function:: lacolla(nomf) `nomf` és el nom d'un *fitxer de posicions*. Retorna un *diccionari de posicions* calculat a partir de les dades del fitxer `nomf`. Per exemple: .. literalinclude:: test-lacolla.txt :language: pycon :start-after: ---- inici :end-before: ---- fi Trobaràs més tests al fitxer :download:`test-lacolla.txt`. .. rubric:: Solucions Trobaràs una solució al fitxer :download:`castellers.py`.