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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
| from tkinter import *
from random import choice
import socket
#----------------------------------------------------------------------------------
hote = "localhost"
port = 11800
connexion_avec_serveur = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connexion_avec_serveur.connect((hote, port))
print("Aceptation du défi..".format(port))
#--------------------------------------------------------------------------------
fen = Tk()
fen.title("JEU DU PENDU")
scores=0
#FONCTION POUR PENDU
def lettre_dans_mot(lettre_dite) :
global partie_en_cours, mot_a_afficher1, mot_a_trouver, essais, Score, scores
if partie_en_cours :
mot_a_afficher2 = ""
lettre_dans_mot = 0
nb_lettres=len(mot_a_trouver)
for i in range(nb_lettres):
if mot_a_trouver[i]==lettre_dite:
mot_a_afficher2 += lettre_dite
lettre_dans_mot = 1
else:
mot_a_afficher2 += mot_a_afficher1[i]
mot_a_afficher1 = mot_a_afficher2
afficher_mot(mot_a_afficher1)
if not lettre_dans_mot: #si la lettre choisi est fausse
essais= essais+ 1 #le nombre d'essais va augmenter et s'accumuler
pendusuite = "pendu_"+str(essais)+".png" #pendu commence à se former
img=PhotoImage(file=pendusuite)
pendu.config(image=img)
pendu.image=img
if essais == 10: #si on atteint le nombre max d'essais
partie_en_cours = 0#partie en cours terminée
afficher_mot(mot_a_trouver) #le mot va s'afficher
if scores !=0:
scores=scores-1
can.delete(Score)
Score=can.create_text(110, 70, text=scores, fill="#06128B", font='courier 15')
elif mot_a_afficher1 == mot_a_trouver:# le mot a été trouvé
partie_en_cours = 0
penduGG = "smiley.png"
img=PhotoImage(file=penduGG)
pendu.config(image=img)
pendu.image=img
scores+=1
can.delete(Score)
Score=can.create_text(110, 70, text=scores, fill="#06128B", font='courier 15')
def afficher_mot(mot):
global Labelmot_fen
mot_espace = ""
for i in range(len(mot)): # ajoute un espace entre les lettres
mot_espace = mot_espace + mot[i] + " "
can.delete(Labelmot_fen)
Labelmot= Label(fen,text=mot_espace, height=1,bg="#B1B5E2",font='Courrier 20' )
Labelmot_fen=can.create_window(250, 300, window=Labelmot)
def choisir_mot():
global mot_a_trouver, mot_a_afficher1,essais, partie_en_cours, msg_recu
essais=0
partie_en_cours=1
msg_recu = b""
msg_recu = connexion_avec_serveur.recv(1024).upper()
connexion_avec_serveur.send(b"5 / 5")
mot_a_trouver=msg_recu.decode()
mot_a_afficher1="_"*len(mot_a_trouver)
afficher_mot(mot_a_afficher1)
img=PhotoImage(file="pendu_0.png")
pendu.config(image=img)
pendu.image=img
def quitter():
print("Fermeture de la connexion")
connexion_avec_serveur.close()
fen.destroy()
# PRINCIPAL
can = Canvas(fen, bg="#B1B5E2", height=500, width=500)
can.pack()
#au début
Labelmot= Label(fen,text="", height=1,bg="#B1B5E2",font='Courrier 17' )
Labelmot_fen=can.create_window(250, 300, window=Labelmot)
can.create_text(50,70, text="Score:",fill="#06128B", font='courier 15')
Score=can.create_text(110, 70, text="0",fill="#06128B", font='courier 15')
img=PhotoImage(file="pendu_0.png")
pendu=Label(can, image=img)
pendu.place(x=100, y=100)
#Boutons A à Z
k=80
boutonA = [0]*9
for i in range(9):
boutonA[i] = Button(fen,text=chr(i+65),command=lambda x=i+65:lettre_dans_mot(chr(x)))
can.create_window(k,370,window=boutonA[i])
k=k+40
k=80
boutonJ = [0]*9
for i in range(9):
boutonJ[i] = Button(fen,text=chr(i+74),command=lambda x=i+74:lettre_dans_mot(chr(x)))
can.create_window(k,410,window=boutonJ[i])
k=k+40
k=80
boutonS=[0]*8
for i in range(8):
boutonS[i] = Button(fen,text=chr(i+83),command=lambda x=i+83:lettre_dans_mot(chr(x)))
can.create_window(k,450,window=boutonS[i])
k=k+40
bouton_rejouer = Button(fen,text='REJOUER',command=choisir_mot)
bouton_rejouer_fen=can.create_window(450,40, window=bouton_rejouer)
bouton_quitter=Button(fen,text='QUITTER',command=quitter)
bouton_quitter_fen=can.create_window(50,40, window=bouton_quitter)
choisir_mot() |
Partager