Fonctions

benj78

XLDnaute Nouveau
Bonjour,

j'étais déjà venu pour vous posez une question a propos de cet exo mais je n'ai pas très bien compris. J'ai repris chez moi et j'aimerais savoir ce qui ne va pas dans ma fonction

Tout d'abord on me demande d'écrire un programme qui effectue le lancer de 3 dés, puis qui calcule le nombre de points gagnés par l'utilisateur selon la regle suivante:
si la somme des résultats donnés par les trois dés est strictement inférieure a 10, aucun point n'est gagné.
-si la somme des resultats est comprise entre 10 et 15 (bornes comprises) le nombre de points gagnés vaut 2
-si la somme des resultats est strictement superieure a 15, le nombre de pts gagnés est 8

-puis affiche les trois résultats ainsi que le nbre de points gagnés dans une meme boite de dialogue

J'ai fais ce programme, mais après n me demandait:

Ecrire le code d'une fonction jeu(x,y,z) qui calcule le nombre de points gagnés a partir de trois résultats de lancers de dés passés en parametre

voilà ce que j'ai fais :


Function Jeu(x As Integer, y As Integer, z As Integer) As Integer
score = 0
For i = 1 To 3
If x + y + z < 10 Then
score = score + 0
ElseIf x + y + z >= 10 And x + y + z <= 15 Then
score = score + 2
ElseIf x + y + z > 15 Then
score = score + 8
i = 1 + i
Jeu = score
End If

Next
End Function

Sub macro()
x = Int(1 + Rnd * 6)
y = Int(1 + Rnd * 6)
z = Int(1 + Rnd * 6)
MsgBox ("votre score est" & score)

End Sub

Par contre ça ne va pas car dans ma fonction jeu je devrais plutot avoir quelque chose comme jeu=score(x,y,z)
mais je ne vois pas comment faire , comment rattaché ce resultat aux variables, je sais pas si vous comprenez ma question :D

Merci
 

kjin

XLDnaute Barbatruc
Re : Fonctions

Bonjour,
Je pense que tu as déjà eu la réponse à propos des fonctions !
A quoi sert la variable " i " dans ta fonction ?
Ta fonction c'est Jeu et non pas Score qui est le résultat de ta fonction !

Public Function Jeu(x, y, z)
Jeu = x + y + z
Select Case Jeu
Case Is < 10
Jeu = 0
Case Is <= 15
Jeu = 2
Case Is > 15
Jeu = 8
End Select
End Function


Sub AffScore()
x = Int(2 + Rnd * 6)
y = Int(2 + Rnd * 6)
z = Int(1 + Rnd * 6)
Score = Jeu(x, y, z)
MsgBox "votre score est " & " " & x & " " & y & " " & z & " " & "soit" & " " & Score
[A1] = Score
End Sub


J'ai mis +2 pour "x"et "y" pour avoir une chance d'afficher 8 (oui c'est de la triche) et le détail du résultat du tirage dans le message renvoyé dans une cellule

A+
kjin
 

jmd2

XLDnaute Accro
Re : Fonctions

hello

es-tu obligé de tout faire par code, ou as-tu le droit de faire les calculs et le traitement sur une feuille et ensuite faire afficher le résultat dans une textbox ?

************************************************************
 

Statistiques des forums

Discussions
312 428
Messages
2 088 346
Membres
103 821
dernier inscrit
Lorient56