diff --git "a/TP1/#D\303\251finition_des_actions_possibles.py" "b/TP1/#D\303\251finition_des_actions_possibles.py"
new file mode 100644
index 0000000000000000000000000000000000000000..ebc48a0f90f81dabbe1a4172cdc52373faa56293
--- /dev/null
+++ "b/TP1/#D\303\251finition_des_actions_possibles.py"
@@ -0,0 +1,42 @@
+# Définition des actions possibles
+actions = ["avoue", "nie"]
+
+# Représentation des pertes (peines) par un dictionnaire
+pertes = {
+    ("avoue", "avoue"): (3, 3),
+    ("avoue", "nie"): (0, 10),
+    ("nie", "avoue"): (10, 0),
+    ("nie", "nie"): (1, 1)
+}
+
+# Implémentation de la fonction dilemme_prisonnier
+def dilemme_prisonnier(matrice_pertes, action_joueur1, action_joueur2):
+    """
+    Fonction qui calcule les pertes pour chaque joueur selon leurs actions.
+    
+    Args:
+        matrice_pertes: dictionnaire des pertes
+        action_joueur1: action du joueur 1
+        action_joueur2: action du joueur 2
+        
+    Returns:
+        tuple des pertes (perte_joueur1, perte_joueur2)
+    """
+    return matrice_pertes[(action_joueur1, action_joueur2)]
+
+# Main pour tester le code
+if __name__ == "__main__":
+    print("Dilemme du Prisonnier")
+    print("=====================")
+    
+    print("\nActions possibles :", actions)
+    
+    print("\nDictionnaire des pertes :")
+    for situation, peines in pertes.items():
+        print(f"Situation {situation} : Peines {peines}")
+    
+    print("\nTests de la fonction dilemme_prisonnier :")
+    print(f"Les deux avouent : {dilemme_prisonnier(pertes, 'avoue', 'avoue')}")
+    print(f"Joueur 1 avoue, Joueur 2 nie : {dilemme_prisonnier(pertes, 'avoue', 'nie')}")
+    print(f"Joueur 1 nie, Joueur 2 avoue : {dilemme_prisonnier(pertes, 'nie', 'avoue')}")
+    print(f"Les deux nient : {dilemme_prisonnier(pertes, 'nie', 'nie')}")
\ No newline at end of file
diff --git a/TP1/Equilibre_De_Nash.py b/TP1/Equilibre_De_Nash.py
new file mode 100644
index 0000000000000000000000000000000000000000..4c1a1b1bd31a96ae1de9dd0feaea4dd21ba15f96
--- /dev/null
+++ b/TP1/Equilibre_De_Nash.py
@@ -0,0 +1,123 @@
+# Définition des actions possibles
+actions = ["avoue", "nie"]
+
+# Représentation des pertes (peines) par différents dictionnaires
+pertes1 = {
+    ("avoue", "avoue"): (3, 3),
+    ("avoue", "nie"): (0, 10),
+    ("nie", "avoue"): (10, 0),
+    ("nie", "nie"): (1, 1)
+}
+
+# Deuxième matrice de pertes
+pertes2 = {
+    ("avoue", "avoue"): (5, 0),
+    ("avoue", "nie"): (5, 1),
+    ("nie", "avoue"): (4, 3),
+    ("nie", "nie"): (3, 4)
+}
+
+# Troisième matrice de pertes
+pertes3 = {
+    ("avoue", "avoue"): (2, 2),
+    ("avoue", "nie"): (5, 1),
+    ("nie", "avoue"): (1, 5),
+    ("nie", "nie"): (3, 3)
+}
+
+def dilemme_prisonnier(matrice_pertes, action_joueur1, action_joueur2):
+    """
+    Fonction qui calcule les pertes pour chaque joueur selon leurs actions.
+    
+    Args:
+        matrice_pertes: dictionnaire des pertes
+        action_joueur1: action du joueur 1
+        action_joueur2: action du joueur 2
+        
+    Returns:
+        tuple des pertes (perte_joueur1, perte_joueur2)
+    """
+    return matrice_pertes[(action_joueur1, action_joueur2)]
+
+def equilibre_nash(matrice_pertes, actions):
+    """
+    Fonction qui identifie les situations à l'équilibre de Nash.
+    
+    Args:
+        matrice_pertes: dictionnaire des pertes
+        actions: liste des actions possibles
+        
+    Returns:
+        liste des situations à l'équilibre de Nash
+    """
+    equilibres = []
+    
+    # Pour chaque combinaison d'actions possible
+    for action1 in actions:
+        for action2 in actions:
+            situation = (action1, action2)
+            perte1, perte2 = matrice_pertes[situation]
+            
+            # Vérifier si le joueur 1 peut améliorer sa situation en changeant d'action
+            meilleure_action_joueur1 = True
+            for autre_action1 in actions:
+                if autre_action1 != action1:
+                    autre_perte1 = matrice_pertes[(autre_action1, action2)][0]
+                    if autre_perte1 < perte1:  # Si une autre action donne une perte plus faible
+                        meilleure_action_joueur1 = False
+                        break
+            
+            # Vérifier si le joueur 2 peut améliorer sa situation en changeant d'action
+            meilleure_action_joueur2 = True
+            for autre_action2 in actions:
+                if autre_action2 != action2:
+                    autre_perte2 = matrice_pertes[(action1, autre_action2)][1]
+                    if autre_perte2 < perte2:  # Si une autre action donne une perte plus faible
+                        meilleure_action_joueur2 = False
+                        break
+            
+            # Si aucun des deux joueurs ne peut améliorer sa situation, c'est un équilibre de Nash
+            if meilleure_action_joueur1 and meilleure_action_joueur2:
+                equilibres.append(situation)
+    
+    return equilibres
+
+# Main pour tester le code
+if __name__ == "__main__":
+    print("Dilemme du Prisonnier et Équilibre de Nash")
+    print("=========================================")
+    
+    print("\nActions possibles :", actions)
+    
+    print("\n1. Matrice de pertes initiale :")
+    for situation, peines in pertes1.items():
+        print(f"Situation {situation} : Pertes {peines}")
+    
+    print("\nTests de la fonction dilemme_prisonnier (matrice 1) :")
+    print(f"Les deux avouent : {dilemme_prisonnier(pertes1, 'avoue', 'avoue')}")
+    print(f"Joueur 1 avoue, Joueur 2 nie : {dilemme_prisonnier(pertes1, 'avoue', 'nie')}")
+    print(f"Joueur 1 nie, Joueur 2 avoue : {dilemme_prisonnier(pertes1, 'nie', 'avoue')}")
+    print(f"Les deux nient : {dilemme_prisonnier(pertes1, 'nie', 'nie')}")
+    
+    print("\nÉquilibres de Nash pour la matrice initiale :")
+    equilibres1 = equilibre_nash(pertes1, actions)
+    for eq in equilibres1:
+        print(f"Situation {eq} : Pertes {pertes1[eq]}")
+    
+    print("\n2. Deuxième matrice de pertes :")
+    for situation, peines in pertes2.items():
+        print(f"Situation {situation} : Pertes {peines}")
+    
+    print("\nÉquilibres de Nash pour la deuxième matrice :")
+    equilibres2 = equilibre_nash(pertes2, actions)
+    for eq in equilibres2:
+        print(f"Situation {eq} : Pertes {pertes2[eq]}")
+    
+    print("\n3. Troisième matrice de pertes :")
+    for situation, peines in pertes3.items():
+        print(f"Situation {situation} : Pertes {peines}")
+    
+    print("\nÉquilibres de Nash pour la troisième matrice :")
+    equilibres3 = equilibre_nash(pertes3, actions)
+    for eq in equilibres3:
+        print(f"Situation {eq} : Pertes {pertes3[eq]}")
\ No newline at end of file