Classes Peça¶
La classe Peça representa una peça d’un joc d’escacs. Vegeu-ne l’especificació:
- class pessa.Peça(tipus='Peó', color='Blanc')¶
Atributs:
- tipus¶
Instància de
strque representa el tipus de peça. S’espera que sigui'Rei','Dama','Torre','Cavall','Àlfil'o'Peó'.
- color¶
Instància de
strque representa el color de la peça. S’espera que sigui'Blanc','Negre','Blanca'o'Negra'.
Mètodes:
- 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ó
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
pessa.py. Instancieu una peça d’escacs, comproveu els valors dels seus atributs i modifiqueu-los. Proveu de cridar la funcióstr(). Invoqueu el mètodevalida()per a comprovar si la peça té valors vàlids.Per exemple:
>>> from pessa import Peça >>> p1 = Peça('Rei', 'Blanc') >>> str(p1) 'Rei Blanc' >>> p1.valida() True >>> p3 = Peça('Bunyol', 'Groc') >>> str(p3) 'Bunyol Groc' >>> p3.valida() False
Dissenyeu la funció següent que desareu al fitxer
validar.py:- validar.validar(iterp)¶
- param iterp:
un iterador sobre una sèqüència d’instàncies de la classe
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.
>>> l = [Peça('Rei','Groc'), Peça('Peó', 'Negre')] >>> it = iter(l) >>> it2 = peces_valides(it) >>> print(next(it2)) Peó Negre >>> next(it2) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration
Avís
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 test-peces-valides.txt i d’una solució al fitxer validar.py.