diff --git a/src/main/java/org/petriNet/MainPetriNet.java b/src/main/java/org/petriNet/MainPetriNet.java
new file mode 100644
index 0000000000000000000000000000000000000000..a78a1557a89f867ac760ab17be5ab98e07aacc61
--- /dev/null
+++ b/src/main/java/org/petriNet/MainPetriNet.java
@@ -0,0 +1,61 @@
+package org.petriNet;
+
+public class MainPetriNet {
+
+    public static void main(String[] args) {
+        // Create a Petri net
+        ReseauPerti reseauPerti = new ReseauPerti();
+
+        // Create places
+        Place p1 = new Place(1,3);
+        Place p2 = new Place(2,3);
+        Place p3 = new Place(3,3);
+
+        // Create transitions with empty Arcs_ENTRANT and Arcs_SORTANT
+        Transition t1 = new Transition(1, new ArrayList<Arc_ENTRANT>(), new ArrayList<Arc_SORTANT>());
+        Transition t2 = new Transition(2, new ArrayList<Arc_ENTRANT>(), new ArrayList<Arc_SORTANT>());
+
+        // Create arcs
+        Arc_ENTRANT a1 = new Arc_ENTRANT(p1, t1, 1);
+        Arc_SORTANT a2 = new Arc_SORTANT(p2, t1, 1);
+        Arc_ENTRANT a3 = new Arc_ENTRANT(p2, t2, 1);
+        Arc_SORTANT a4 = new Arc_SORTANT(p3, t2, 1);
+
+        // Add arcs to transitions
+        t1.ajouterArc_ENTRANT(a1);
+        t1.ajouterArc_SORTANT(a2);
+        t2.ajouterArc_ENTRANT(a3);
+        t2.ajouterArc_SORTANT(a4);
+
+        // Add arcs to places
+        //p1.addArc(a1);
+        //p2.addArc(a2);
+        //p2.addArc(a3);
+        //p3.addArc(a4);
+
+        // Add places and transitions to the Petri net
+        reseauPerti.ajouterPlace(p1);
+        reseauPerti.ajouterPlace(p2);
+        reseauPerti.ajouterPlace(p3);
+        reseauPerti.ajouterTransition(t1);
+        reseauPerti.ajouterTransition(t2);
+
+        // Display the Petri net
+        reseauPerti.afficherEtat();
+
+        // Test the est_tirable method
+        System.out.println("t1 est tirable : " + t1.est_tirable());
+        System.out.println("t2 est tirable : " + t2.est_tirable());
+
+        // Test the tirer method
+        if (t1.est_tirable()) {
+            reseauPerti.tirerTransition(t1);
+        }
+        if (t2.est_tirable()) {
+            reseauPerti.tirerTransition(t2);
+        }
+
+        // Display the Petri net again
+        reseauPerti.afficherEtat();
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/org/petriNet/PetriNetService.java b/src/main/java/org/petriNet/PetriNetService.java
index 76cb725e6e601166a07e38f0a3631bbdf75893fe..223e5363e01b3fb01166f5d3d50105d1e1cfd896 100644
--- a/src/main/java/org/petriNet/PetriNetService.java
+++ b/src/main/java/org/petriNet/PetriNetService.java
@@ -12,4 +12,11 @@ public interface PetriNetService {
 	
 	public void afficherEtat();
 
+	/**
+	 * afficher le réseau de petri
+	 * On a trouver que cette fonction et utile pour visualiser
+	 * le réseau de petri
+	 */
+	public void afficherReseau();
+
 }
diff --git a/src/main/java/org/petriNet/ReseauPerti.java b/src/main/java/org/petriNet/ReseauPerti.java
index fb0b6182e4af26104fd51cfbd2124bb4693890ca..a68d7c988e12ea431a2819586b78e3532245295c 100644
--- a/src/main/java/org/petriNet/ReseauPerti.java
+++ b/src/main/java/org/petriNet/ReseauPerti.java
@@ -49,8 +49,34 @@ public class ReseauPerti implements PetriNetService {
 	@Override
 	public void afficherEtat() {
 		// TODO Auto-generated method stub
-		
+		// afficher le nombre de jetons dans chaque place
+		for (Place place : places) {
+			System.out.println("Place " + place.getId() + " : " + place.getNbrJetons());
+		}
 	}
-	
-	
+
+	@Override
+	public void afficherReseauPetri() {
+		// TODO Auto-generated method stub
+
+		/**
+		 * afficher les places, les transitions et les arcs
+		 * comme un dessin du réseau de petri
+		 * les places comme des cercles
+		 * les transitions comme des rectangles
+		 * les arcs comme des flèches
+		 * les poinds des arcs à côté des flèches
+		 * les jetons des points dans les places
+		 * relier les arcs aux places et aux transitions par des flèches
+		 */
+
+		// afficher Petri Net
+		System.out.println("Petri Net : ");
+		// afficher les places, les arcs, le poid et les transitions
+		for (Arc arc : arcs) {
+			System.out.println("Arc : " + arc.getPlace().getId() + " -> " + arc.getTransition().getId() + " : " + arc.getPoids());
+		}
+
+
+
 }
diff --git a/src/main/java/org/petriNet/Transition.java b/src/main/java/org/petriNet/Transition.java
index 11e24b2237854c0664cfb74c7013ae74ac9abf15..0782b7b636650ed2b8c1ad18fde5c5d5e77db1c7 100644
--- a/src/main/java/org/petriNet/Transition.java
+++ b/src/main/java/org/petriNet/Transition.java
@@ -3,10 +3,26 @@ package org.petriNet;
 public class Transition {
     private int id;
     private List<Arc_SORTANT> arcs_SORTANTS;
+    private List<Arc_ENTRANT> arcs_ENTRANTS;
 
-    public Transition(int id) {
+    public Transition(int id, List<Arc_SORTANT> arcs_SORTANTS, List<Arc_ENTRANT> arcs_ENTRANTS) {
         this.id = id;
         this.arcs_SORTANTS = new ArrayList<Arc_SORTANT>();
+        this.arcs_ENTRANTS = new ArrayList<Arc_ENTRANT>();
+    }
+
+    /**
+     * On ajoute deux méthodes pour pouvoir ajouter les arcs entrants et
+     * sortants à la transition
+     * c'est une différence par rapport au diagramme de classe soumis
+     */
+
+    public void ajouterArc_SORTANT(Arc_SORTANT arc_SORTANT) {
+        this.arcs_SORTANTS.add(arc_SORTANT);
+    }
+
+    public void ajouterArc_ENTRANT(Arc_ENTRANT arc_ENTRANT) {
+        this.arcs_ENTRANTS.add(arc_ENTRANT);
     }
 
     public boolean est_tirable() {