LE JEU DU PENDU

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 26 févr. 2010 à 00:07
yarbinjho Messages postés 1 Date d'inscription mardi 29 décembre 2009 Statut Membre Dernière intervention 4 mars 2010 - 4 mars 2010 à 18:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51349-le-jeu-du-pendu

yarbinjho Messages postés 1 Date d'inscription mardi 29 décembre 2009 Statut Membre Dernière intervention 4 mars 2010
4 mars 2010 à 18:00
j'ai pas compris le code,j'adore ce jeu et j'ai besoin d'aide pour cerner ce code
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
1 mars 2010 à 20:36
C'est pas de l'optimisation, mais de la refactorisation.
Pour gagner en maintenance et en plus pour découvrir un peu plus la puissance du langage
xinewz Messages postés 1 Date d'inscription jeudi 18 juin 2009 Statut Membre Dernière intervention 1 mars 2010
1 mars 2010 à 20:32
salut,

Je te remercier pour cette optimisation !
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
26 févr. 2010 à 00:07
Salut,

Le programme peut-être raccourci de manière importante.

Exemple

Abonné tous les bouttons au même evenement

Dans pendu_Load

'Gestion des evenements
For Each Ctrl As Control In GrpClavier.Controls
AddHandler Ctrl.Click, AddressOf Button_Click
Next

Toute la partie gestion clavier devient seulement
--> Toutes les lettres sont gérées

Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim bt As Button
bt = DirectCast(sender, Button)

If Not (rechercheMot(bt.Text)) Then
picturePendu()
End If
bt.Enabled = False
End Sub

--> La gestion des lock peut se réumer à :

Sub lockey(ByVal bool As Boolean)
Dim ctl As Control
For Each ctl In GrpClavier.Controls
ctl.Enabled = bool
Next
End Sub

Sub lockLetter(ByVal letter As String, ByVal bool As Boolean)
For Each Ctl As Control In GrpClavier.Controls
If (Ctl.GetType Is GetType(Button)) And (DirectCast(Ctl, Button).Text = letter) Then
Ctl.Enabled = bool
End If
Next
End Sub

NB : Mets des portées sur les methodes
et les focntions doivent retourner quelques choses
sinon c'est des SUB

While i < findLettre.Length
If findLettre(i) <> "$" Then
Console.Write(findLettre)
Return True
End If
i = i + 1
End While

Peut devenir

if findLettre.Contains("$") then
return true
end if

Il y a surement d'autre point à revoir

Bon dev
Rejoignez-nous