Communauté

Le début d'une nouv...
 
Notifications
Retirer tout

Le début d'une nouvelle vie

3 Posts
2 Utilisateurs
2 Likes
452 Vu
(@takamaka)
Active Member
Inscription: Il y a 4 ans
Posts: 6
Début du sujet  

Bonjour,

 

Après avoir commencé le parcours bases de la programmation, je viens d'arriver à la partie variable complexe. Comme demandé dans le cours, je viens poster ici la représentation d'un personnage de RPG selon moi:

hero = {}

hero.nom = "Link"
hero.nombreVie = 3
hero.level = 1
hero.xp = 0
hero.endurance = 5
hero.force = 10
hero.mana = 0

hero.inventaire = {}

hero.inventaire.armes = {}

hero.inventaire.armes.epee = {}

hero.inventaire.armes.epee.id = "1"
hero.inventaire.armes.epee.nombre = 1
hero.inventaire.armes.epee.duree = 5
hero.inventaire.armes.epee.puissance = 3

hero.inventaire.armes.arc = {}

hero.inventaire.armes.arc.id = "1"
hero.inventaire.armes.arc.nombre = 1
hero.inventaire.armes.arc.duree = 3
hero.inventaire.armes.arc.portee = 3
hero.inventaire.armes.arc.puissance = 2
hero.inventaire.armes.arc.vitesseTir = 2

hero.inventaire.bouclier = {}

hero.inventaire.bouclier.id = "1"
hero.inventaire.bouclier.nombre = 1
hero.inventaire.bouclier.duree = 3
hero.inventaire.bouclier.matiere = "Bois"

hero.inventaire.tenues = {}

hero.inventaire.tenues.id = "Tenue basique"
hero.inventaire.tenues.nombre = 1
hero.inventaire.tenues.defense = 1
hero.inventaire.tenues.duree = 2
hero.inventaire.tenues.level = 1

hero.inventaire.potions = {}

hero.inventaire.potions.id = "Soins"
hero.inventaire.potions.pointSoin = 1
hero.inventaire.potions.nombre = 1



 Je ne sais pas si ce que j'ai écris est bon ou pas donc si vous pourriez me faire vos retours pour que je puisse m'améliorer, ça serait vraiment sympa de votre part.

 

Bonne soirée à vous. Je continuerai mon apprentissage demain. 

A bientôt pour la suite de mon aventure.

 

Nicolas 


   
caprog reacted
Citation
Étiquettes du sujet
(@oktopuss)
Membre Admin
Inscription: Il y a 6 ans
Posts: 23
 

Bonjour,

d'un point de vue syntaxe, c'est impeccable, aucune faute. Au niveau de la logique il y a de l'amélioration à faire. Par exemple, utiliser uniquement des identifiants pour l'inventaire :

hero.inventaire = { 5, 8, 12, 6 }

Chaque nombre dans cette liste serait un identifiant utilisé avec une table de correspondance. Il est plus simple de séparer la logique des données.

Par exemple avoir une liste d'objets :

objets = {

    [1] = {
        nom = "Epee",
        type = "arme",
        degats = 5,
        prixVente = 10,
        prixAchat = 20
    },
    [2] = {
        nom = "Potion de soin",
        type = "consommable",
        effet = "soin",
        valeur = 15,
        prixVente = 15,
        prixAchat = 30
    }
    -- [...]
}

Cette liste pourrait être stockée dans un fichier qui ne contient que ça, ainsi quand tu auras besoin de modifier des valeurs tu te reportes uniquement à ce fichier.

Et dans ton code quand tu voudras récupérer les valeurs, tu pourras te référer à l'identifiant. Si ton inventaire est composé de la sorte :

hero.inventaire = {1, 2, 2, 2}

cela signifirait que le joueur possède 1 épée et 3 potions de soin.

Pour récupérer un objet, tu pourras faire quelque chose du genre :

local obj = objets[inventaire[3]] -- Récupère la troisième entrée de l'inventaire, à savoir une potion

J'espère que ça t'as éclairci un peu, tu n'en es pas encore là mais ça te montre un certain type de logique que tu pourras utiliser plus tard =)

Ce message a été modifié Il y a 1 an parRaphytator

   
Nicolas reacted
RépondreCitation
(@takamaka)
Active Member
Inscription: Il y a 4 ans
Posts: 6
Début du sujet  

@oktopuss Merci pour ta réponse, ça me permet de voir les choses d'une autre façon et de m'améliorer. Du coup en voyant ta réponse ça me paraît plus logique maintenant de faire comme cela.

Merci encore =) 


   
RépondreCitation
Share:

Dialoguez avec les autres membres de la gamecodeur school.

Accédez maintenant à notre serveur Discord privé : Entraide, Game Jams, Partage de projets, etc.

Vous devez être membre de la Gamecodeur School Premium pour être autorisé à accéder au serveur.