class Peça:

    tipus_m = ('Rei', 'Cavall', 'Àlfil', 'Peó')
    tipus_f = ('Dama', 'Torre')
    colors_m = ('Blanc', 'Negre')
    colors_f = ('Blanca', 'Negra')

    símbol={('Rei','Blanc'):    '\u2654',
            ('Dama','Blanca'):  '\u2655',
            ('Torre','Blanca'): '\u2656',
            ('Àlfil','Blanc'):  '\u2657',
            ('Cavall','Blanc'): '\u2658',
            ('Peó','Blanc'):    '\u2659',
            ('Rei','Negre'):    '\u265A',
            ('Dama','Negra'):   '\u265B',
            ('Torre','Negra'):  '\u265C',
            ('Àlfil','Negre'):  '\u265D',
            ('Cavall','Negre'): '\u265E',
            ('Peó','Negre'):    '\u265F'}

    def __init__(self, tipus='Peó', color='Blanc'):
        self.tipus = tipus
        self.color = color

    def __repr__(self):
        return self.tipus + " " + self.color
        
    def __str__(self):
        return self.símbol[self.tipus, self.color]
        
    def és_vàlida(self):
        return ( self.tipus in self.tipus_m and self.color in self.colors_m 
                 or self.tipus in self.tipus_f and self.color in self.colors_f )
                  
