nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 2011
-
26 févr. 2010 à 00:07
yarbinjho
Messages postés1Date d'inscriptionmardi 29 décembre 2009StatutMembreDerniè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.
yarbinjho
Messages postés1Date d'inscriptionmardi 29 décembre 2009StatutMembreDerniè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és6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 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és1Date d'inscriptionjeudi 18 juin 2009StatutMembreDernière intervention 1 mars 2010 1 mars 2010 à 20:32
salut,
Je te remercier pour cette optimisation !
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 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
4 mars 2010 à 18:00
1 mars 2010 à 20:36
Pour gagner en maintenance et en plus pour découvrir un peu plus la puissance du langage
1 mars 2010 à 20:32
Je te remercier pour cette optimisation !
26 févr. 2010 à 00:07
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