Cours S5 Python

Les Objets

Nous avons vu le principe de récursivité précédement. Dans ce cours, vous allez apprendre ce que c’est qu’ un objet et comment le programmer !

I. Introduction

 Qu’est qu’un objet ? Un objet est par exemple dans une jeux vidéo, tous ce que vous allez utilisé pour jouer (Votre personnage, une arme, du soins, des capacités, des constructions etc…). Ce sont des classes auxquels on leur ajoute par exemple des variables comme de la vie, des dégats (etc…). On leur ajoutera évidement un affichage, des animations (etc…). Les options sont pratiquement illimité. Dans un jeux comme par exemple un Word of Warcraft, on peut y trouver une quantité astronomique d’objet. Dans Candy Crush ou même Tetris, il y en a très peu. Un objet peu aussi être une porte que vous animé ou une même le ciel ! En résumer, ce cours sera un des plus fascinant !

 

II. Un personnage

 Ici, nous allons apprendre à créer un personnage. Premièrement, il faut le définir avec la fonction class:

class Character:

Ensuite, on lui accorde un nom:

name = “Amaury”

Après, on peut lui donner des points de vie:

health = 10

Puis, on peut lui accorder des points d’attack:

attack = 5

Voilà, vous venez de créer un personnage s’appelant Amaury, ayant 10 points de vie, et 5 points d’attaque ! Tous les jeux tournent sur ce principe. Vous pouvez très bien l’utiliser d’une autres facon pour un utilisateur avec la fonction input() par exemple.

 

II. L’officialisé dans votre code

 Vous l’allez donc “officialisé” votre personnage dans votre code pour pouvoir l’utilisé et intéragir avec lui et avec ses variables en dehors de cette classe:

player = Character()

Ainsi, vous pouvez par exemple afficher un message:

print(“{} a {} points de vie et {} points d’attaque”.format(player.name, player.health, player.attack)

Mais ici, vous n’avez qu’un seul joueur. Admettons que vous souhaitez jouer avec un ami par exemple.

 

III. Ajouter plusieurs joueurs

Pour créer plusieurs joueur, nous allons utilisé la fonction self. Vous allez supprimer tous ce que vous avez écrit dans la classe Character() et vous allez écire à l’interieur de class:

def __init__(self, name, health, attack):

Ici, vous venez de créer un personnage avec 3 variables self.name, self.health, self.attack. Maintenant, il faut les définir en tant que variable classique:

self.name = name

self.health = health

self.attack = attack

Ensuite dans votre ligne:

player = Character()

Vous allez écrire dans les paranthèses:

player = Character(input(“Entrer votre nom:”), 10, 5)

Puis vous créer votre 2eme personnage:

player1 = Character(input(“Entrer votre nom:”, 10, 5)

Vous pouvez copier coller votre ligne print et modifier player en player1 pour afficher le même message mais pour votre 2eme personnage (Je l’appelerais Gabriel)!

 

IV. Les méthodes

 Les méthodes sont des fonctions dans des class tout simplement. Vous avez 3 types de méthode. Pour récupérer des informations par exemple, vous allez utiliser la méthode “Getter”. Cette méthode est relativement simple. Allez donc dans votre classe et écrivez:

def get_name(self):

 Ensuite, renvoyer le nom à self:

           return self.pseudo

 Cela permet de rendre beaucoup plus accessible vos variable. Allieu d’écrire par exemple: player1.name pour avoir votre nom, vous faites un player.get_name. Dans de long programme, je vous garantis que cette méthode est beaucoup plus rapide !

 Vous pouvez faire exactement pareil pour votre vie et votre attaque.

 

 

 

 

VI. Mutateur

Le deuxième type de méthode s’appelle les “mutateurs”. Elle permet que notre personnage puisse gagner/perdre de la vie, gagner/perdre de l’attaque. Nous allons donc infliger des dégats à notre personnage. Allez dans votre classe:

def damage(self, damage):

Ici, vous créer une variable damage. Puis enlever de vos points de vie des dommages:

self.health -= damage

Puis vous pouvez afficher:

print(“Vous venez de recevoir”, damage, “points de dégats!”)

Ensuite allez en-dessous de votre code:

 player.damage(5)

 print(“{} possede désormais {} points de vie”.format(player.get_name, player.get_health)

Vous commencez a comprendre n’est-ce-pas 😀 !!! Après vos effort, enfin vous accédez a la partie la plus croustiante !!