grosjoueur
Messages postés2Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention31 janvier 2009
-
31 janv. 2009 à 15:13
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 2010
-
1 févr. 2009 à 14:58
Bonjour,
Je suis un train de développer une application de jeu et dans le cadre de ce développement j'ai besoin de détecter une suite de signes.
Pour faire simple j'aimerais créer une boucle sans limite permettant de faire une même action jusqu'à que l'application arrive à détecter une suite d'un même signe 03 fois de suite.
Le système permettant de détecter le signe à déjà été programmé mais ce que je n'arrive pas c'est à détecter si il y à une suite.
pour le moment je fais quelque chose comme ça :
boucle de X à X
détection du signe
fin de boucle
Pour information le signe n'est pas présent dans le programme même ; je vais le chercher dans une autre application donc c'est pas possible de gérer directement le signe avec la source.
La seule chose que l'on peut voir dans le code source directement c'est par exemple :
Rond
Rond
Carré
Triangle
Carré
Carré
Carré
Ces résultats représentent la recherche de signes 07 fois sur l'application cible.
Par exemple dans cette exemple la boucle peut être arrêtée car il y à une suite de 03 signes : carré.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 31 janv. 2009 à 16:15
Salut
Lecture perturbée par tes termes assez troublant :
Sur un site dédié à la programmation, tes termes désignent bien d'autres choses. Les termes exacts seraient :
Suite = Répétition
Signe = Symboles, Objets
Bref, tu as les infos de 7 synboles et tu veux détecter quand 3 symboles identiques se suivent (version courte de ton explication)
Le fait que tu veuilles faire ce test par répétition n'est pas difficile et on l'enlèvera de l'équation : Toujours résoudre le coeur du problème d'abord.
En supposant que tes 7 symboles soient rangés dans un tableau :
Dim aSymboles(1 To 7) As String
Que tu définisses une variable qui soit témoin de la recherche :
Dim iRépétitions As Integer
Il te suffit de faire une simple boucle :
Dim r As Integer
iRépétitions = 0
For r = 2 To 7
If aSymboles(r) = aSymboles(r - 1) Then
iRépétitions = iRépétitions + 1
Else
iRépétitions = 0
End If
If iRépétitions = 3 Then Exit For
Next r
If iRépétitions = 3 Then MsgBox "Eureka !"
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
tu crées un tableau de 3 éléments vides au début
1° récupération : élément(1) = "Rond" ' on ne fait rien
2° récupération : élément(2) = "Rond" ' on ne fait rien
3° récupération : élément(3) = "Carré" ' on teste si les 3 éléments sont identiques
ensuite 2 solutions selon ce que tu veux faire si tu as 3 éléments identiques
1° solution : on vide les 3 éléments et on récupère un nouvel élément comme 1° récupération, un second comme 2° récupération et un troisième comme 3° récupération. A partir de la on teste
2° solution
élément(1) devient élément(2) et élément(2) devient élément(3)
On récupère de nouveau un 3° élémént dans élément(3) et on test si 3 éléments identiques
on peut avoir 2 suites de 3 éléments identiques : 5-6-7 et 6 -7- 8
C'est à toi de voir si après le détection d'un suite 5-6-7 tu continues à 8 ( dans ce cas-la tu vides les 3 éléments avant et tu récupères 3 éléments avent le nouveau test) ou tu continues à 8 (6 devient l'élément1, 7 devient l'élément2 et 8 devient l'élément3 et dans ce cas on ne récupères qu'un élément et on fait le test)
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 31 janv. 2009 à 18:58
Re
Tout dépend où tu en es de ta programmation.
Le but du forum est de répondre à des questions précises, une question à chaque fois pour simplifier les réponses.
A toi de découper ce que tu as à faire et de résoudre chaque problème individuellement.
"c'est récupéré en temps réel." : dans quoi ? comment ? quelle forme ?
On n'a aucune indication !
En faisant le découpage, tu trouveras aussi les mots clés qui représentent ton problème --> Commence par faire une recherche parmi les codes du site, il y a de fortes chance que tu trouves des débuts d'explications.
Revient nous voir quand tu auras un problème précis.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 1 févr. 2009 à 14:58
Bonjour tout le monde
Je ne suis pas sûr qu'on ait besoin de passer par un tableau. Le but du jeu est de détecter si on reçoit un même signe trois fois de suite. Ce que l'on a besoin de savoir, c'est si le signe détecté est identique au précédent, et, le cas échéant, d'incrémenter un compteur, ou de le remettre à zéro dans le cas contraire.
Ce code ne fait-il pas l'affaire ?
Dim signe As String
Dim exSigne As String
Dim suite As Integer
Do
signe = <detection signe>
If signe = exSigne Then
suite = suite + 1
Else
exSigne = signe
suite = 1
End If
Loop Until suite = 3