Fonction (hasard)

Antonin31 Messages postés 1 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 4 février 2005 - 4 févr. 2005 à 14:52
zippro4012 Messages postés 216 Date d'inscription mardi 15 juin 2004 Statut Membre Dernière intervention 26 février 2006 - 6 févr. 2005 à 12:47
Bonjour, j'ai 15 ans, je vis au Canada et présentement dans mon cours
d'informatique je doit faire un jeu grace a vb6. j'aurai besoin de votre aide afin
pouvoir faire apparaitre un certain nombre de soldats au hasard quelque part au
hasard dans la feuille. Merci d'avance pour votre aide.

3 réponses

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
4 févr. 2005 à 15:21
C'est du VBA (Excel) mais ça devrait être un bon point de départ. Il faut juste trouver quel composant est utilisé pour représenter un soldat et remplacer la chaine "Forms.Label.1" (Label de la bibliothèque MSForms (différent du Label de VB6)) par la bonne définition.

Option Explicit
Private lcol_Soldats As New Collection


Private Sub UserForm_Click()
Dim ls_X As Single
Dim ls_Y As Single
Dim lbl_Label As Control
'Position aléatoire sur la feuille
ls_X = Rnd * (Me.Width - 10)
ls_Y = Rnd * (Me.Height - 10)
'Crée un nouveau Label
Set lbl_Label = Me.Controls.Add("Forms.Label.1", "lbl" & lcol_Soldats.Count, True)
'Stocke la liste des controles créés
lcol_Soldats.Add lbl_Label, lbl_Label.Name
With lbl_Label
'Position .Left ls_X: .Top ls_Y
'Dimension .Width 10: .Height 10
'Text
.Caption = "X"
End With
End Sub


Private Sub UserForm_Terminate()
Dim ll_index As Long
'Vide la collection
For ll_index = lcol_Soldats.Count To 1 Step -1
lcol_Soldats.Remove ll_index
Next ll_index
'Détruit la collection
Set lcol_Soldats = Nothing
End Sub
0
cqui789 Messages postés 261 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 18 mai 2009 3
5 févr. 2005 à 00:32
si tu veux faire ton programe tout seul, voici les bases:



Obtenir un nombre aleatoire : la fonction rnd rend un nombre superieur ou egal a 0 et inferieur a 1

Ainsi, pour obtenir un nombre entier par exemple entre 0 (compris) et 4 (non compris), la formule :

int(rnd * 4) rendras un nombre au hasard parmis 0, 1, 2 et 3 mais pas 4.



Et pour obtenir un nombre entier entre deux valeurs comprises, min et max, la formule:

int( rnd * (max - min +1)) + min



quand un programme demare, les nombres fournis par rnd sont toujours
les memes (la meme serie). pour partir d'un nombre vraiment aleatoire,
utiliser la fonction randomize au debut du programe.

Ces deux
fonctions ont d'autres usages possibles, par exemple, tu peux faire
resortir les memes series plusieurs fois pour recomencer une partie du
debut, avec les memes soldats...
0
zippro4012 Messages postés 216 Date d'inscription mardi 15 juin 2004 Statut Membre Dernière intervention 26 février 2006 1
6 févr. 2005 à 12:47
Attention !!!!! Il ne faut pas oublier l'instruction Randomize au début du code sinon, le Rnd sortira les même nombres a chaque redémmarage du programme !
0
Rejoignez-nous