begin process at 2012 02 15 22:57:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Problème de pointage d'une case d'un tableau vers une case d'un autre tableau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de pointage d'une case d'un tableau vers une case d'un autre tableau

vendredi 27 janvier 2006 à 18:31:18 | Problème de pointage d'une case d'un tableau vers une case d'un autre tableau

250386

Bonjour,

voila, je suis sous VB6 et j'ai un petit probleme.

J'ai un tableau : joug(10 to 109) as ???????
et 7 autres de la forme : adv(1 to 5) as boolean
                                    adv2(1 to 4) as boolean
                                    etc...

Je voudrait savoir comment je peux faire pointer joug(35) sur adv(1) par exemple.
J'ai essayé de mettre joug en string et de faire : joug(35)="adv(1)", mais le problème est que je ne peux plus récupérer la valeur booleénne de adv(1) après. Je pourrais faire des tests pour savoir
si joug(35)="adv(1)" alors adv(1)=true, mais ces tests seraient vraiment trop longs....

Si vous avez une idée, merci!!

250386
vendredi 27 janvier 2006 à 19:47:24 | Re : Problème de pointage d'une case d'un tableau vers une case d'un autre tableau

pcpt

Administrateur CodeS-SourceS
salut,
il faudrait que tu expliques le but.
là, juste mettre le nom d'une variable en string dans une tableau, çà ne sert pas à grand chose, puisque VB ne gère pas une string par rapport à son équivalent nommé... (c'est pas du PHP ;))


vendredi 27 janvier 2006 à 20:06:38 | Re : Problème de pointage d'une case d'un tableau vers une case d'un autre tableau

250386

Ben en faite, je fait une sorte de "bataille navale".
Les petits tableaux représente les bateaux. je me sert d'un tableau pour savoir si la bateau a été coulé (tableau plein) : booleen (touché ou pas)
Lorsque je vais jouer, si je touche un bateau, je veux que la partie du tableau correspondante a la partie du bateau touché passe a True.
Ma grille est faite avec des picturebox indexées, donc, lors que je place mes bateau, le seul moyen de savoir quelle partie de quel bateau est sur quelle case est de déclarer un tableau.
Et donc, le tableau ayant les mem indices que les picturebox, il me faut un moyen de faire un lien entre ce tableau et les tableaux correspondants aux bateaux.
Ci ce n'est pas encore assez claire, dite-le, j'essayerais d'expliqué autrement.
merci

vendredi 27 janvier 2006 à 21:07:54 | Re : Problème de pointage d'une case d'un tableau vers une case d'un autre tableau

pcpt

Administrateur CodeS-SourceS
non, c'est compris, mais je ne vois pas l'intérêt des petits tableaux (les bateaux).

puisqu'une fois une case touchée, vide ou non, tu dois regarder si elle contient un bateau, si oui lequel, et si tout ce bateau est touché, pourquoi ne pas tout stoquer dans cette même case...

voici le principe :

'une Form, 5 boutons par défaut
Option Explicit 
'
'
Private Type tBateau 
    tNomBateau      
As String 
    tTailleBateau   
As Integer 
    tTouche         
As Boolean 
End Type 
'
Dim aCases(10 To 109) As tBateau 
'
'
Private Sub Form_Load() 
'   init le tableau
    
Dim i As Integer 
    
For i = 10 To 109 
        aCases(i).tNomBateau = "" 
        aCases(i).tTailleBateau = 0 
        aCases(i).tTouche = 
False 
    
Next i 

'   ta routine d'attribution aléatoire sans (surement utilisateur vs PC..)

'   disons Porte-Avion (5) sur la première ligne horizontale
    
For i = 10 To 14 
        aCases(i).tNomBateau = "Porte-Avion" 
        aCases(i).tTailleBateau = 5 
    
Next i 

'   et un de 3 vertical
    aCases(20).tNomBateau = "Navire" 
    aCases(20).tTailleBateau = 3 
    aCases(30).tNomBateau = "Navire" 
    aCases(30).tTailleBateau = 3 
    aCases(40).tNomBateau = "Navire" 
    aCases(40).tTailleBateau = 3 

'   les boutons pour le test
    Command1.Caption = "Petit" 
    Command2.Caption = "Petit" 
    Command3.Caption = "Grand" 
    Command4.Caption = "Rien" 
    Command5.Caption = "Petit" 

End Sub 
'
'
'
Private Sub Command1_Click() 
'   on touche le petit bateau
    
Call VerifImpact(20) 
End Sub 
Private Sub Command2_Click() 
'   on touche le petit bateau
    
Call VerifImpact(30) 
End Sub 
Private Sub Command3_Click() 
'   on touche le grand
    
Call VerifImpact(14) 
End Sub 
Private Sub Command4_Click() 
'   on touche rien
    
Call VerifImpact(60) 
End Sub 
Private Sub Command5_Click() 
'   on touche (coule?) le petit
    
Call VerifImpact(40) 
End Sub 
'
'
'
Private Sub VerifImpact(ByVal iCase As Integer
'   on vérifie qu'il y a un bateau (donc taille>0 ou nom <>"", l'un des 2)
'   on va même gérer une case déjà jouée

    
If aCases(iCase).tTailleBateau = 0 Then 
'       rien, on marque jouée
        
MsgBox "Plouff", vbInformation 
        aCases(iCase).tTailleBateau = -1 

    
ElseIf aCases(iCase).tTailleBateau = -1 Then 
'       jouée mais vide
        
MsgBox "Case déjà jouée !!", vbInformation 

    
Else 
'       là il y a un bateau. touché?
        
If aCases(iCase).tTouche Then 
            
MsgBox "Case déjà jouée!!", vbInformation 
        
Else 
'           touche bateau!!!
            
MsgBox aCases(iCase).tNomBateau & " touché !!!" 

'           on enregistre le touché (et tu gères pour la coucleur de la Pic correspondante)
            aCases(iCase).tTouche = 
True 

'           et on vérifie si il reste des cases libres au bateau
            
If Not VerifBateauOK(aCases(iCase).tNomBateau) Then 
                
MsgBox aCases(iCase).tNomBateau & " coulé !!", vbCritical 
            
End If 
        
End If 
    
End If 
End Sub 
'
'
'
Private Function VerifBateauOK(ByVal sName As StringAs Boolean 
    
Dim i As Integer 
    
Dim bCoule As Boolean 
    bCoule = 
True 

    
For i = 10 To 109 
        
If (aCases(i).tNomBateau = sName) And Not aCases(i).tTouche) Then 
            bCoule = 
False 
            
Exit For 
        
End If 
    
Next i 

    VerifBateauOK = 
Not bCoule 
End Function 


Coloration syntaxique automatique [AFCK]
       

qu'est-ce que tu en dis?

++
PCPT   [AFCK]



vendredi 27 janvier 2006 à 21:12:56 | Re : Problème de pointage d'une case d'un tableau vers une case d'un autre tableau

pcpt

Administrateur CodeS-SourceS
If (aCases(i).tNomBateau = sName) And (Not aCases(i).tTouche) Then
vendredi 27 janvier 2006 à 22:33:21 | Re : Problème de pointage d'une case d'un tableau vers une case d'un autre tableau

250386

Il est bien pensé comme code. C'est vrai qu'il est intéresant, mais le truc que je lui reproche, c'est que contrairement a mon idée (meme si elle ne marche pas lol), c'est que pour la vérification des bateaux, tu as besoin de te repalucher tout le tableau.
C'est domage qu'il n'y ait pas moyen de pointer vers une adresse commen en C, ça serait bien pratique.
Ben j'y réfléchiré mieux demain.

Merci a toi PCPT pour ton aide



Cette discussion est classée dans : problème, tableau, case, adv, joug


Répondre à ce message

Sujets en rapport avec ce message

problème primaire de tableaux [ par undo ] Admettons un tableau as string, mettonsdim Noms(120), rempli de chaines de caractères parfois identiques.admettons un autre tableau, vide, NomUnique(x DESSINER UN TABLEAU (ET SES VALEURS...... ES-CE POSSIBLE?) [ par koubihack ] Programmeurs, programmeuses... BonjourJ'ai besoin de savoir comment afficher les données d'un tableau qui sont remplies de façons différentes à chaque Problème à la con avec tableau dynamique [ par Misutsu ] Salut tout le monde !!!Voilà, j'ai jamais tester avant de tableau dynamique, mais là j'en ai un besoin vital, voici en gros ce que j'ai tapoté : dim t Checkbox problème! [ par STEN83 ] Petit problème avec un Checkbox, dans une feuille de calcul je voudrais placer une case à cocher et faire en sorte que celle-ci une fois la coche acti Problème indice en dehors de la plage [ par Darkukai ] Bonjour à tous (tes)j'ai un soucis dans l'utilisation des tableauxvoici un bout de code pour l'illustrerdim tableau() as stringfor i = 1 to 10ReDim Pr Ube condition qui ne marche pas sur un if [ par ndsaerith ] Bonjour tout le mondeVoila j'ai une condition if suivie d'un select case.Ma condition se fait sur une string() qui récupère les valeurs d'un split :ta Petit Problème de Connexion [ par Cpapy ] Bonjour, Pour se connecter il faut donner son Login et son mot de passe. Ces deux information me sont systématiquement demandés malgré la coche déclaration tableau VBA [ par pommeverte ] salut , j'ai un problème avec VBA , j'arrive a déclarer les tableau avec une taille variable : message d'erreur " l'expression sur chargement entrée c déclaration tableau VBA [ par pommeverte ] salut , j'ai un problème avec VBA , j'arrive a déclarer les tableau avec une taille variable : message d'erreur " l'expression sur chargement entrée c Datagrid et évenement click [ par 5n0w ] Salut, Je viens de trouver quelque chose d'assez bizarre. Lorsque je clique sur mon datagrid sur la colonne de gauche (celle grise avec la flèche)


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,512 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales