''' creare le classi Carta, Mazzo e Mano. 1) la classe Carta ha come metodi: -costruttore (la calta di default e' l'asso di bastoni) - il metodo __str__ per stampare la carta - il metodo __lt__ per definire l'ordinamento tra due carte 2) la classe Mazzo ha come metodi: -il cotruttore del mazzo di 40 carte - il metodo __str__ per stampare le carte del mazzo - il metodo mescola(self) per mescolare il mazzo - il metodo estrai_carta(self) per estrarre una carta dal mazzo 3) la classe Mano ha come metodi: - il costruttore che ha come parametri il mazzo da cui estrarre e il numero di carte della mano - il metodo __str__ per guardare le carte in mano - ordina_mano(self) ordina le carte che si hanno in mano ''' class Carta: seme= ['Bastoni', 'Coppe', 'Denari', 'Spade'] valore= [None, 'Asso','2','3','4','5','6','7','Fante','Cavaliere','Re'] def __init__(self, seme=0,valore=1): '''la carta di default e' l'asso di bastoni''' self.seme=seme self.valore=valore def __str__(self): ''' crea la stringa valore di seme con andata a capo''' return Carta.valore[self.valore]+ ' di ' + Carta.seme[self.seme]+'\n' def __lt__(self,other): '''controlla se la prima carta e' minore della seconda (guarda il seme e a parita' il valore''' if self.semeother.seme: return False if self.valore>> a=Carta() >>> b=Carta(1,3) >>> a <__main__.Carta object at 0x1037e8160> >>> print(a,b) Asso di bastoni 3 di Coppe >>>a>> a>> b>> b1>> b>> b==b1 False >>> mazzo1=Mazzo() >>> mazzo1 <__main__.Mazzo object at 0x1037e8630> >>> print(mazzo1) Asso di Bastoni 2 di Bastoni 3 di Bastoni ....... Cavaliere di Spade Re di Spade >>> mazzo1.mescola() >>> print(mazzo1) Re di Spade 7 di Spade ....... 4 di Coppe 6 di Bastoni >>> c1=mazzo1.estrai_carta() >>> c2=mazzo1.estrai_carta() >>> print(c1,c2) 6 di Bastoni 4 di Coppe >>> len(mazzo1.carte) 38 >>> man=Mano(mazzo1,5) >>> print(man) Asso di Denari 7 di Denari 7 di Bastoni 2 di Coppe Asso di Spade >>> man.ordina_mano() >>> print(man) 7 di Bastoni 2 di Coppe 7 di Denari Asso di Denari Asso di Spade '''