IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Racourcir un code


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Racourcir un code
    Bonjour à tous,
    J'aurais besoin de votre aide pour raccourcir un code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
            'Première fois
            For Each Direction_Personnage1 As DIRECTION In [Enum].GetValues(GetType(DIRECTION))
                If (Information_Direction(Direction_Personnage1, Case_1) = Case_2) Then
                    If (1 < Distance_Final) Then Distance_Final = 1
                End If
                'Deuxième fois
                For Each Direction_Personnage2 As DIRECTION In [Enum].GetValues(GetType(DIRECTION))
                    If (Information_Direction(Direction_Personnage2, Information_Direction(Direction_Personnage1, Case_1)) = Case_2) Then
                        If (2 < Distance_Final) Then Distance_Final = 2
                    End If
                    'Troisième fois
                    For Each Direction_Personnage3 As DIRECTION In [Enum].GetValues(GetType(DIRECTION))
                        If (Information_Direction(Direction_Personnage3, Information_Direction(Direction_Personnage2, Information_Direction(Direction_Personnage1, Case_1))) = Case_2) Then
                            If (3 < Distance_Final) Then Distance_Final = 3
                        End If
                        'Quatrième fois
                        For Each Direction_Personnage4 As DIRECTION In [Enum].GetValues(GetType(DIRECTION))
                            If (Information_Direction(Direction_Personnage4, Information_Direction(Direction_Personnage3, Information_Direction(Direction_Personnage2, Information_Direction(Direction_Personnage1, Case_1)))) = Case_2) Then
                                If (4 < Distance_Final) Then Distance_Final = 4
                            End If
                            'Ainsi de suite jusqu’à la 87eme fois ...
                        Next
                    Next
                Next
            Next
    Ce code si-dessus se répète 87 fois, avec à chaque fois un for each dans un autre for each
    Mais je suis sur qu'il y a un moyen plus astucieux que d'écrire 87 fois ce code ...
    Bref, il faux avoir lu et compris le principe pour pouvoir le raccourcir.
    J’espère qu'un de vous pourras m'aider, à bientôt !

  2. #2
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Salut

    peux tu dire ce que doit faire ta sub ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut, le but de cette fonction est de renvoyer un integer
    Mais même si j’expliquai tout en détail ça ne servirai à rien puisque toute les informations nécessaire sont dans mon premier message

  4. #4
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Salut,

    Peut être comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Module Module1
     
        Private Property Distance_Final As Integer
        Private Property Case_1 As Integer
        Private Property Case_2 As Integer
     
        Sub Main()
            Test(1, Case_1)
        End Sub
     
        Sub Test(ByVal i As Integer, ByVal cas As Integer)
            For Each Direction_Personnage As DIRECTION In [Enum].GetValues(GetType(DIRECTION))
                Dim info As Integer = Information_Direction(Direction_Personnage, cas)
                If info = Case_2 Then
                    If (i < Distance_Final) Then
                        Distance_Final = i
                    End If
                End If
                If i < 87 Then
                    Test(i + 1, info)
                End If
            Next
        End Sub
     
    End Module

  5. #5
    Invité
    Invité(e)
    Par défaut
    Woaw, tu es plus rapide que la lumière
    Je regarde ça tout de suite et je te dit si c'est bon

  6. #6
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    C'est le principe de la recursivité. Le tout c'est de bien voir ce qui est récursif et ce qui ne l'est pas.. Je l'ai fait vite fait alors c'est peut-être pas tout à fait juste mais je pense que si c'est pas bon il y a peu de chose à modifier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Racourcir un code
    Par Invité dans le forum VB.NET
    Réponses: 2
    Dernier message: 09/06/2012, 12h58
  2. De la rapidité du code
    Par jfloviou dans le forum Contribuez
    Réponses: 233
    Dernier message: 29/05/2009, 02h17
  3. [Dictionary] Racourcir le code
    Par anthyme dans le forum C#
    Réponses: 7
    Dernier message: 13/03/2007, 21h05
  4. Explorateur de code C
    Par Zero dans le forum C
    Réponses: 14
    Dernier message: 06/06/2002, 09h41
  5. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo