Bonjour,
La fonction suivante met à jour mon interface graphique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 def majgraphique(canvas,plateau): for i in range(8): for j in range(8): if plateau[j][i]!=0: if plateau[j][i]==1: couleur = "black" else: couleur = "white" canvas.create_oval(80*i+2,80*j+2,80*i+78,80*j+78,fill=couleur)
Elle est appelée par la fonction click après jouer_coup (coup de l'humain) et coup_aleatoire (coup de l'ordinateur).
Je voudrais :
- coup humain
- mise à jour graphique
- une ou deux secondes de pause
- coup d' ordi
- mise à jour graphisme
Quand je rajoute un time.sleep(2) APRES l'appel de majgraphique dans mon programme, la pause s'effectue en réalité avant la mise à jour, et les deux mises à jour humain et ordinateur s'effectuent en suivant et je n'ai pas le temps de voir le coup de l'humain.
J'ai essayé de glisser mon time.sleep(2) à plusieurs endroits, mais j'ai toujours le même problème. Mon programme pause 2 secondes, puis les deux coups s'affichent en suivant (simultanément en apparence).
J'ai essayé de remplacer le sleep par un while portant sur time.time(), mais cela revient au même.
Quelqu'un pourrait-il m'expliquer pourquoi mon code ne fonctionne pas comme espéré et me proposer une solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 def click(event): global joueur x,y = event.x//80,event.y//80 if est_possible(joueur,x,y): jouer_coup(joueur,x,y) majgraphique(canvas,plateau) # je rajoute ici le time.sleep(2) mais le graphisme n'est pas actualisé avant la pause. joueur = 3 - joueur coup_aleatoire(joueur) majgraphique(canvas,plateau) joueur = 3 - joueur
Merci d'avance.
Partager