-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_pygame.py
More file actions
121 lines (93 loc) · 4.13 KB
/
test_pygame.py
File metadata and controls
121 lines (93 loc) · 4.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import tkinter as tk
from tkinter import scrolledtext
from tkinter import PhotoImage
import math
import random
# Données de la conversation
messagesList = [
{"name": "Normi", "text": "Coucou je suis un loup garou"},
{"name": "Adèle", "text": "Salut ! Je suis voyante aaaaaaaaaaaaaaaaaa"}
]
agents = [
{"name": "Bob", "image_path": "images/werewolf.png"},
{"name": "Alice", "image_path": "images/werewolf.png"},
{"name": "Adele", "image_path": "images/werewolf.png"},
{"name": "Yahnis", "image_path": "images/werewolf.png"},
{"name": "Léa", "image_path": "images/werewolf.png"},
{"name": "Normi", "image_path": "images/werewolf.png"}
]
num_circles = 6
random_color = []
for _ in range(num_circles):
while True:
# Générer des composants de couleur RVB aléatoires
red = random.randint(100, 255)
green = random.randint(100, 255)
blue = random.randint(100, 255)
# Vérifier si la couleur est suffisamment lumineuse (non foncée)
if (red + green + blue) / 3 > 150: # Exemple de seuil de luminosité
break
# Ajouter la couleur générée à la liste
random_color.append("#{:02X}{:02X}{:02X}".format(red, green, blue))
# Créez une liste pour stocker les objets PhotoImage
image_list = []
# Modifiez la fonction pour dessiner les cercles et afficher les images
def draw_circles_with_names_and_images(canvas):
circle_radius = 60
circle_center_x = 400
circle_center_y = 300
circle_spacing = 150
# Dessiner les cercles
for i in range(num_circles):
angle = 2 * math.pi * i / num_circles
x = circle_center_x + (circle_radius + circle_spacing) * math.cos(angle)
y = circle_center_y + (circle_radius + circle_spacing) * math.sin(angle)
canvas.create_oval(x - circle_radius, y - circle_radius, x + circle_radius, y + circle_radius, fill=random_color[i])
# Ajouter les noms au-dessus des cercles
element = agents[i]
name = element["name"]
canvas.create_text(x, y, text=name)
# Ajouter les images en dessous des cercles
image_path = element.get("image_path") # Obtenir le chemin de l'image
if image_path:
image = PhotoImage(file=image_path) # Charger l'image
image = image.subsample(6, 6)
image_list.append(image) # Ajouter l'image à la liste
canvas.create_image(x, y + circle_radius + 10, anchor=tk.N, image=image)
# Ajouter les noms au-dessus des cercles
element = agents[i]
name = element["name"]
canvas.create_text(x, y, text=name)
def display_game() :
# Créer une fenêtre
fenetre = tk.Tk()
fenetre.title("Chat Fenêtre")
# Réduire la largeur de la fenêtre avec le texte
fenetre.geometry("1200x700") # Largeur x Hauteur
# Diviser la fenêtre en deux parties (gauche et droite)
left_frame = tk.Frame(fenetre)
right_frame = tk.Frame(fenetre)
fenetre.configure(bg="white")
left_frame.pack(side=tk.LEFT, padx=10)
right_frame.pack(side=tk.RIGHT, padx=10, fill=tk.BOTH, expand=True)
# Créer un canevas pour dessiner les cercles dans la partie gauche
canvas = tk.Canvas(left_frame, width=800, height=700)
canvas.configure(bg="white")
canvas.pack()
draw_circles_with_names_and_images(canvas)
# Créer un widget Texte défilant pour la conversation dans la partie droite
conversation = scrolledtext.ScrolledText(right_frame, wrap=tk.WORD, state=tk.DISABLED, width=30)
conversation.pack(fill=tk.BOTH, expand=True)
conversation.configure(bg="#262626")
conversation.tag_configure("user", foreground="blue")
# Parcourir la liste de messages et les afficher
for message_data in messagesList:
name = message_data["name"]
message = message_data["text"]
conversation.config(state=tk.NORMAL) # Activer l'édition
conversation.insert(tk.END, f" {name} : {message}\n", "user")
conversation.config(state=tk.DISABLED) # Désactiver l'édition
conversation.yview(tk.END) # Faire défiler vers le bas
# Démarrer la fenêtre principale
fenetre.mainloop()
display_game()