Classe MemoryPlus (2 punts) --------------------------- .. py:module:: memoryplus Volem fer una versió del joc per a dos jugadors en el qual hi hagi cartes especials, identificades pel caràcter :py:const:`'@'`. Si un dels dos jugadors gira una carta especial, directament se la queda encara que no hagi format una parella. Això ho aconseguirem utilitzant el mecanisme d'herència. Hem dissenyat una nova classe :py:class:`MemoryPlus` que tindrà dos atributs addicionals, els nombre de punts dels dos jugadors. Implementeu la classe :py:class:`MemoryPlus` tal com s'especifica a continuació, derivant-la de :py:class:`~match3.Memory`. Deseu-la al mòdul :mod:`memoryplus` (fitxer :file:`memoryplus.py`) .. py:class:: MemoryPlus(nfils, ncols) Inicialitza l'espai del joc per a dos jugadors com un rectangle de dimensions :math:`nfils \times ncols` sense cap carta. En començar el joc tots dos jugadors tenen 0 punts. .. rubric:: Atributs públics addicionals: .. py:attribute:: npunts1 Punts del jugador 1 (enter) .. py:attribute:: npunts2 Punts del jugador 2 (enter) .. rubric:: Mètodes: .. py:method:: capgira(p, q, jug) Realitza el torn del jugador `jug`, paràmetre que ha de valdre 1 o 2, simulant el capgirament de les cartes de les posicions `p` i `q`. Es compleix que tant a `p` com a `q` hi ha una carta. Si les dues cartes coincideixen (tenen el mateix valor), s'eliminen de l'espai de joc i el jugador `jug` obté dos punts. Si només una de les carta de les posicions `p` o `q` és una carta especial, l'elimina de l'espai de joc i el jugador `jug` obté un sol punt. Exemples d'ús de la classe: .. literalinclude:: tests-memoryplus.txt :language: pycon :end-before: --fi-enunciat Disposeu de jocs de prova al fitxer :download:`tests-memoryplus.txt`