Maintenant que nous savons ce qu’est une Fonction() ! Abordons une solution pour effectuer le calcul d’une attaque et de retourner un résultat à la variable appelant la fonction Attaque()

return  permet de retourner un résultat. Le résultat du return peut être assigné à la variable qui appelle la fonction.

Syntaxe pour une fonction avec un return :

function maFonction()
  return valeur
end

Exemple d’un return  de valeur fixe :

function maFonction()
 return 100
end

print( maFonction() )

sortie console :

100

print() appelle la fonction maFonction() et celle-ci retourne la valeur 100.

On peut aussi retourner une variable :

vieMax = 100

function maFonction()
 return vieMax
end

print( maFonction() )

sortie console :

100

Bien, ça commence à prendre forme, on va voir comment on peut stocker le return d’une fonction dans une variable.


Syntaxe pour récupérer la Valeur du return  d’une fonction :

maVariableAppelante = leReturnDeCetteFonction()
Créons une fonction  MaxVie()  qui remonte la vie de notre Héros à 100.

Solution :

vieHero = 20
print(vieHero)

function MaxVie()
 return 100 -- valeur retourné à la variable appelante
end

vieHero = MaxVie()
print(vieHero)

sortie console :

20 
100

MaxVie() retourne  toujours le nombre 100 à la variable appelante.

Allons encore plus loin !

Voyons maintenant le return d’un calcul qu’on effectue dans le corps de la fonction Attaque()

Attaque() doit  retourner la valeur contenu dans une variable qu’on appellera  resultat à la variable appelante vieHero

Démonstration :

vieHero = 100
frappeEnnemi = 10

function Attaque() -- début et nom de la fonction
 resultat = vieHero - frappeEnnemi -- resultat vaut la valeur du calcul
 return resultat -- return renvois la valeur de resultat à l'appelant
end -- fin de la fonction

vieHero = attaque() -- vieHero vaut la valeur return par Attaque()
print(vieHero)

sortie console :

90
  • Exercice
– Créer un héros, celui-ci sera notre combattant (jeu de combat dans la rue) avec une vie avec 100 points de vie. – Notre héros doit subir une ou plusieurs attaque de la part d’un adversaire. – Enfin le héros doit restaurer sa vie à son plein potentiel en mangeant une part de poulet. – Essayez d’exécuter du texte dans les fonctions pour donner un peu de vie à tout cela…

Solution à la suite… Seulement si vous avez essayé !


Solution :

Reprenons les bases des deux fonctions que nous venons de créer :

vieHero = 80
vieMax = 100
frappeEnnemi = 20

function AttaqueHero()
  resultat = vieHero - frappeEnnemi
  print("le hero possede "..vieHero.." pts de vie avant l'attaque, il subit une attaque de "..frappeEnnemi.." pts. Il a désormais "..resultat.." pts de vie")
  return resultat
end

function VieMaxHero()
  resultat = vieMax - vieHero
  print("le hero mange un poulet frit et recupere "..resultat.." pts de vie ! Il est désormais en pleine forme avec "..vieMax.." pts de vie !")
  return vieMax
end

vieHero = AttaqueHero()
vieHero = AttaqueHero()
vieHero = AttaqueHero()

vieHero = VieMaxHero()

sortie console :

le hero possede 80 pts de vie avant l'attaque, il subit une attaque de 20 pts. Il a désormais 60 pts de vie

le hero possede 60 pts de vie avant l'attaque, il subit une attaque de 20 pts. Il a désormais 40 pts de vie 

le hero possede 40 pts de vie avant l'attaque, il subit une attaque de 20 pts. Il a désormais 20 pts de vie 

le hero mange un poulet frit et recupere 80 pts de vie ! Il est désormais en pleine forme avec 100 pts de vie !

Plutôt cool non ? =D

Je vous attends au prochain cours !