From 5d37038724afebc158110a9013ab4bb5c1bdc472 Mon Sep 17 00:00:00 2001
From: Lucas Philippe <lucasphilippe@MacBook-Air-de-Lucas.local>
Date: Thu, 18 Jan 2024 11:15:07 +0100
Subject: [PATCH] Etape 6 fonctionnelle

---
 TP1/BubbleCursor.py |  2 +-
 TP1/BubbleWidget.py | 20 +++++++++++++++++++-
 TP1/Target.py       |  7 +++++++
 3 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/TP1/BubbleCursor.py b/TP1/BubbleCursor.py
index 8e4e261..49d54c0 100644
--- a/TP1/BubbleCursor.py
+++ b/TP1/BubbleCursor.py
@@ -21,7 +21,7 @@ class BubbleCursor:
 
         for target in self.targets:
             distance = ((self.x - target.x) ** 2 + (self.y - target.y) ** 2) ** 0.5  # cf. Theoreme de Pythagore
-            distance = distance - target.size/2 # Prendre la distance avec le contour du cercle et pas le centre
+            distance = distance - target.size/2  # Prendre la distance avec le contour du cercle et pas le centre
             if distance < min_distance:
                 min_distance = distance
                 self.closest = target
diff --git a/TP1/BubbleWidget.py b/TP1/BubbleWidget.py
index 8a47450..1f1c20d 100644
--- a/TP1/BubbleWidget.py
+++ b/TP1/BubbleWidget.py
@@ -1,4 +1,4 @@
-import csv
+import csv, random, time
 from PyQt5.QtGui import QPainter
 from PyQt5.QtWidgets import QWidget
 from Target import Target
@@ -11,6 +11,8 @@ class BubbleWidget(QWidget):
         self.loadTargets()
         self.cursor = BubbleCursor(self.targets)
         self.setMouseTracking(True)
+        self.start_time = None
+        self.selectRandomTarget()
 
     def loadTargets(self):
         with open('src_tp_bubble.csv', newline='') as csvfile:
@@ -29,3 +31,19 @@ class BubbleWidget(QWidget):
     def mouseMoveEvent(self, event):
         self.cursor.move(event.x(), event.y())
         self.update()
+
+    def selectRandomTarget(self):
+        if self.start_time == None:
+            self.start_time = time.time()
+        target = random.choice(self.targets)
+        target.toSelect = True
+        self.update()
+
+    def printTime(self):
+        print((time.time() - self.start_time)*1000)
+        self.start_time = None
+
+    def mousePressEvent(self, event):
+        if self.cursor.closest.click_cible():
+            self.printTime()
+            self.selectRandomTarget()
diff --git a/TP1/Target.py b/TP1/Target.py
index 52f415b..7ebcc13 100644
--- a/TP1/Target.py
+++ b/TP1/Target.py
@@ -24,3 +24,10 @@ class Target:
         painter.setBrush(QBrush(color))
         painter.setPen(QPen(color))
         painter.drawEllipse(int(self.x - self.size / 2), int(self.y - self.size / 2), int(self.size), int(self.size))
+
+    def click_cible(self):
+        if self.toSelect:
+            self.toSelect = False
+            return True
+        return False
+
-- 
GitLab