# POO : Application du cours
###### tags: `POO Chapitre 2`
:::info
[Lien du cours]
https://hacgggddkmd.io/@SOmMDwrmTHewWN2IEOBvnA/Hysoi6Reo
https://hackmd.io/@SOmMDwrmTHewWN2IEOBvnA/HkgmZQR-j
:::
Exercice 1 :
a.
```python=
#Exercice 1
#traitement pour les tuples:
def calculDistanceT(p1,p2):#p1 et p2 sont des tuples
x=(p1[0]-p2[0])**2
y=(p1[1]-p2[1])**2
return (x+y)**(1/2)
#traitement pour les dictionnaires
def calculDistanceD(p1,p2):#p1 et p2 sont des dico
x=(p1["x"]-p2["x"])**2
y=(p1["y"]-p2["y"])**2
return (x+y)**(1/2)
def calculDistanceP(self,p2):#p2 est un objet de type point
x=(self.x-p2.x)**2
y=(self.y-p2.y)**2
return (x+y)**(1/2)
tuplepoint=(3,5)
dicopoint={"x":3,"y":5}
class Point:
#constructeur
def __init__(self,x,y):
self.x=x
self.y=y
#programme principale
objetpoint=Point(3,5)
tuplepoint(3,5)
dicopoint={"x":3,"y":5}
objetpoint2=Point(10,5)
dist=objetpoint.calculDistanceP(objetpoint2)
print(dist)
tuplepoint2=(10,5)
dicopoint2={"x":10,"y":5}
dist2=calculDistanceD(dicopoint,dicopoint)
```
b.
Exercice 2 :
Tableau de classe du jeu de cartes :

```python=
from random import*
class Carte: # D´efinition de la classe
couleurs= [("pique","coeur","carreaux","trèfle")]
valeurs = {'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'10':10,'valet':11,'dame':12,'roi':13,'as':14}
def __init__(self,valeur,couleur): #constructeur
self.valeur=valeur # 1er attribut {de 2 a 14}
self.couleur=couleur # {'pique', 'carreau', 'coeur', 'trefle'}
def nom(self):
return (self.valeur,self.couleur)
return self.valeur
return self.couleur
class Paquet:
def __init__(self):
self.cartes = []
for couleur in range(4):
for valeur in range(1, 14):
carte = Card(couleur, valeur)
self.cartes.append(carte)
def tirer():
n = randint(0,53)
return n.self
#programme principale
c1=Carte.nom
print(c1)
```
CORRECTION Exercice 2 :
```python=
#import de bibliotèque
from random import randint
#varianle globale
couleur=["trèfle","pique","coeur","carreaux"]
valeur=["valet","dame","roi"]
#constructeur
class Carte:
def __init__(self,val=None,col=None):
if val==None and col==None:
self.valeur=randint(1,13)
self.couleur=couleur[randint(0,3)]
else:
self.valeur=val
self.couleur=col
def nom(self):
if self.valeur==1:
return "as"+""+"de"+""+self.couleur
elif self.valeur>1 and self.valeur<11:
return str(self.valeur)+" "+"de"+" "+self.couleur
else:
return str(valeur[self.valeur-11])+" "+"de"+" "+self.couleur
class Paquet:
def __init__(self):
self.cartes=[]
for i in couleur:
for j in range(1,13):
self.cartes.append(Carte(j,i))
def tirer(self):
carte=randint(0,51)
return self.cartes[carte].nom()
#programme principale
p=Paquet()
print(p.tirer())
```
Exercice 3 :
```python=
class Tranche(10, 20):
def __len__(): #retourne la taille de la tranche
taille=len[9]-len[0]
return taille
def __getitem__(s):#retourne le i-ème élement de la tranche.
i=[s]
return s
def __setitem__(): #change la valeur du i-ème élement.
#programme principale
print(len())
```