none
ajouter un list(of) à un autre avec vb2010 RRS feed

  • Question

  • bonjour

    en plein apprentissage des list(of)  je voudrais savoir  comment faire pour avoir une list(of) avec des item comme ceci {{10,20},{35,40}}

    sinon comment puis je fusionner deux listes pour obtenir ce genre d'item

    merci d'avance

    mercredi 16 mars 2016 11:53

Réponses

  • Il me semble que vous avez ces contraintes dans votre projet:

    une liste de murs dans votre labyrinthe

    vous voulez tester si une position est dans le mur.

    vos murs sont horizontaux ou verticaux

    Donc je vous suggère de faire une Class MonLabyrinthe. Ce Labyrinthe contiendra une liste de murs, et les Sub de gestion du plan du labyrinthe.

    Public Class monLabyrinthe
    
        Public LesMurs As New List(Of mesMurs)
        'Parce que cela sera plus facile
        Public mesExtremiteDeMurs As New List(Of Point)
    
        Public Sub CreationMurs(ByVal LargeurLabyrinthe As Integer, ByVal HauteurLabyrinthe As Integer, ByVal NbMurs As Integer)
            Dim myRandom As New Random
            Dim intIndex As Integer
    
            For intIndex = 0 To NbMurs
                Dim VouH As Integer = myRandom.Next(0, 101)
                Dim X0 As Integer, Y0 As Integer, X1 As Integer, Y1 As Integer
                If VouH < 50 Then 'horizontal
                    X0 = myRandom.Next(0, LargeurLabyrinthe)
                    X1 = myRandom.Next(X0, LargeurLabyrinthe)
                    Y0 = myRandom.Next(0, HauteurLabyrinthe)
                    Y1 = Y0
                Else
                    X0 = myRandom.Next(0, LargeurLabyrinthe)
                    X1 = X0
                    Y0 = myRandom.Next(0, HauteurLabyrinthe)
                    Y1 = myRandom.Next(Y0, HauteurLabyrinthe)
                End If
                Dim unMur As New mesMurs(X0, Y0, X1, Y1)
                LesMurs.Add(unMur)
                Dim Point0 As New Point(X0, Y0)
                Dim point1 As New Point(X1, Y1)
                mesExtremiteDeMurs.Add(Point0)
                mesExtremiteDeMurs.Add(point1)
            Next
        End Sub
    End Class
    
    Public Class mesMurs
        Public StartX As Integer
        Public StartY As Integer
        Public EndX As Integer
        Public EndY As Integer
    
        Public Sub New(ByVal X0 As Integer, ByVal Y0 As Integer, ByVal X1 As Integer, ByVal Y1 As Integer)
            StartX = X0
            StartY = Y0
            EndX = X1
            EndY = Y1
    
        End Sub
    
        'Les murs sont horizontaux ou verticaux
        Public Function DansLeMur(ByVal positionX As Integer, ByVal positionY As Integer) As Boolean
            DansLeMur = False
            If positionX = StartX Then
                If positionY >= StartY And positionY <= EndY Then
                    DansLeMur = True
                    Debug.Print("DansLeMur")
                    Return DansLeMur
                End If
            End If
            If positionY = StartY Then
                If positionX >= StartX And positionX <= EndX Then
                    DansLeMur = True
                    Debug.Print("DansLeMur")
                    Return DansLeMur
                End If
            End If
    
        End Function
    End Class

    pour la création:

     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            'Création Murs
            UnLabyrinthe.CreationMurs(300, 300, 10)

    et lorsque vous testez une position:

     Dim booDansLeMur As Boolean = False
            For Each unMur As mesMurs In UnLabyrinthe.LesMurs
                booDansLeMur = unMur.DansLeMur(PosX, PosY)
                If booDansLeMur = True Then Exit For
            Next

    • Marqué comme réponse SIMONGEORGES lundi 21 mars 2016 10:46
    dimanche 20 mars 2016 16:06

Toutes les réponses

  • Bonjour, SIMONGEORGES,

    Veuillez consulter le thread en bas :
    List(of String) or Array or ArrayList
    Je vous remercie par avance de votre retour.

    Cordialement,
    Teodora


    Votez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 17 mars 2016 10:30
    Modérateur
  • merci de votre réponse mais j'arrive pas à integrer  à mon programme y a t il  un tuto ou teste qui permet de mieux comprendre merci d'avance
    jeudi 17 mars 2016 11:36
  • Est-ce que vous pourriez décrire ce que votre List(Of) doit accomplir?
    vendredi 18 mars 2016 08:43
  • bonjour très heureux de vus répondre le list of doit contenir des valeurs comme ceux-ci (20,15,23,25), etc;

     et de pouvoir les lire pour les tester

    j'espère avoir répondu correctement cela fait suite à mon programme du labyrinthe

    merci d'avance

    samedi 19 mars 2016 14:16
  • Il me semble que vous avez ces contraintes dans votre projet:

    une liste de murs dans votre labyrinthe

    vous voulez tester si une position est dans le mur.

    vos murs sont horizontaux ou verticaux

    Donc je vous suggère de faire une Class MonLabyrinthe. Ce Labyrinthe contiendra une liste de murs, et les Sub de gestion du plan du labyrinthe.

    Public Class monLabyrinthe
    
        Public LesMurs As New List(Of mesMurs)
        'Parce que cela sera plus facile
        Public mesExtremiteDeMurs As New List(Of Point)
    
        Public Sub CreationMurs(ByVal LargeurLabyrinthe As Integer, ByVal HauteurLabyrinthe As Integer, ByVal NbMurs As Integer)
            Dim myRandom As New Random
            Dim intIndex As Integer
    
            For intIndex = 0 To NbMurs
                Dim VouH As Integer = myRandom.Next(0, 101)
                Dim X0 As Integer, Y0 As Integer, X1 As Integer, Y1 As Integer
                If VouH < 50 Then 'horizontal
                    X0 = myRandom.Next(0, LargeurLabyrinthe)
                    X1 = myRandom.Next(X0, LargeurLabyrinthe)
                    Y0 = myRandom.Next(0, HauteurLabyrinthe)
                    Y1 = Y0
                Else
                    X0 = myRandom.Next(0, LargeurLabyrinthe)
                    X1 = X0
                    Y0 = myRandom.Next(0, HauteurLabyrinthe)
                    Y1 = myRandom.Next(Y0, HauteurLabyrinthe)
                End If
                Dim unMur As New mesMurs(X0, Y0, X1, Y1)
                LesMurs.Add(unMur)
                Dim Point0 As New Point(X0, Y0)
                Dim point1 As New Point(X1, Y1)
                mesExtremiteDeMurs.Add(Point0)
                mesExtremiteDeMurs.Add(point1)
            Next
        End Sub
    End Class
    
    Public Class mesMurs
        Public StartX As Integer
        Public StartY As Integer
        Public EndX As Integer
        Public EndY As Integer
    
        Public Sub New(ByVal X0 As Integer, ByVal Y0 As Integer, ByVal X1 As Integer, ByVal Y1 As Integer)
            StartX = X0
            StartY = Y0
            EndX = X1
            EndY = Y1
    
        End Sub
    
        'Les murs sont horizontaux ou verticaux
        Public Function DansLeMur(ByVal positionX As Integer, ByVal positionY As Integer) As Boolean
            DansLeMur = False
            If positionX = StartX Then
                If positionY >= StartY And positionY <= EndY Then
                    DansLeMur = True
                    Debug.Print("DansLeMur")
                    Return DansLeMur
                End If
            End If
            If positionY = StartY Then
                If positionX >= StartX And positionX <= EndX Then
                    DansLeMur = True
                    Debug.Print("DansLeMur")
                    Return DansLeMur
                End If
            End If
    
        End Function
    End Class

    pour la création:

     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            'Création Murs
            UnLabyrinthe.CreationMurs(300, 300, 10)

    et lorsque vous testez une position:

     Dim booDansLeMur As Boolean = False
            For Each unMur As mesMurs In UnLabyrinthe.LesMurs
                booDansLeMur = unMur.DansLeMur(PosX, PosY)
                If booDansLeMur = True Then Exit For
            Next

    • Marqué comme réponse SIMONGEORGES lundi 21 mars 2016 10:46
    dimanche 20 mars 2016 16:06
  • merci beaucoup de v otre patience envers moi je vais le tester des demain
    dimanche 20 mars 2016 22:05