.. py:module:: pessa Classes Peça ============ La classe :py:class:`Peça` representa una peça d'un joc d'escacs. Vegeu-ne l'especificació: .. py:class:: Peça(tipus='Peó', color='Blanc') .. rubric:: Atributs: .. py:attribute:: tipus Instància de :py:class:`str` que representa el tipus de peça. S'espera que sigui ``'Rei'``, ``'Dama'``, ``'Torre'``, ``'Cavall'``, ``'Àlfil'`` o ``'Peó'``. .. py:attribute:: color Instància de :py:class:`str` que representa el color de la peça. S'espera que sigui ``'Blanc'``, ``'Negre'``, ``'Blanca'`` o ``'Negra'``. .. rubric:: Mètodes: .. py:method:: valida() Retorna un booleà que indica si és una peça vàlida, és a dir, si el seu tipus i color són un dels admesos i concorden amb gènere. També suporta la funció :py:func:`str` que retorna un string format pel tipus de peça i el seu color. #. Descarregueu la implementació d'aquesta classe, que trobareu al mòdul :download:`pessa.py `. Instancieu una peça d'escacs, comproveu els valors dels seus atributs i modifiqueu-los. Proveu de cridar la funció :py:func:`str`. Invoqueu el mètode :py:meth:`valida` per a comprovar si la peça té valors vàlids. Per exemple: .. literalinclude:: test-pessa.txt :language: python #. Dissenyeu la funció següent que desareu al fitxer :file:`validar.py`: .. py:module:: validar .. function:: validar(iterp) :param iterp: un iterador sobre una sèqüència d'instàncies de la classe :py:class:`Peça`. :return: un iterador de les peces de l'iterador `iterp` que són vàlides, en el mateix ordre que en la seqüència original. .. literalinclude:: test-peces-valides.txt :language: python :start-after: --ini-test-peces :end-before: --fi-test-peces .. warning:: Per a resoldre aquest exercici **no es poden fer servir llistes**, tuples, diccionaris ni cap altra estructura de dades **per a desar els elements d'un iterador**. Disposeu de jocs de proves al fitxer :download:`test-peces-valides.txt` i d'una solució al fitxer :download:`validar.py`.