IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation multimédia/Jeux Python Discussion :

Inventaire + équipements équipé


Sujet :

Programmation multimédia/Jeux Python

  1. #1
    Membre régulier
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Points : 103
    Points
    103
    Par défaut Inventaire + équipements équipé
    Bonjour à tous,

    J'ai pour projet sur le très très très long terme de concevoir un petit jeu en amateur.

    J'ai déjà fait quelques codes sur un système de combat avec un random sur les attaques/esquives/Coups critiques et Parades.
    Plus ou moins réussit à faire un système d’énergie à dépenser pour lancer un combat(jeu par clique) ainsi qu'un système de récupération d'énergie.
    Je touche un peu à tout à droite et à gauche, pour progresser un peu avant de me concentrer réellement sur l'étape par étape à sa conception.

    Mon soucis actuel, c'est de pouvoir créer un inventaire de jeu ainsi que des équipements à équiper.
    Je ne vois pas du tous sur quelle base partir et ayant fait des recherches non-fructueuses, je suis un peu perdu.

    Je ne demande pas qu'on me le fasse, juste pour ceux qui connaissent un peu, de m'orienter si c'est bien-sur possible afin de progresser à mon rythme et de comprendre ce que je tente de faire.
    Je n'ai malheureusement pas base à présenter, j'étais parti sur une liste et un dict pour faire ça, mais je me retrouve vite submergé par l'incompréhension de mon code.

    Merci de m'avoir lu.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 577
    Points
    218 577
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    C'est plutôt dur à dire ainsi. Un inventaire, au final, ce n'est qu'un tableau d'objets (ou une liste).
    Pour l'équipement, c'est aussi une liste d'objets.
    On regarde cette dernière liste, pour savoir les bonus/malus que le personnage a et ainsi, on peut appliquer la formule de l'attaque/défense.

    Après, je suis flou, car je n'arrive pas trop à saisir où vous bloquez. Je pense qu'il faut essayer et après, vous verrez les problèmes sur lesquels vous allez buter.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre régulier
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Points : 103
    Points
    103
    Par défaut
    désolé de ma non réponse, j'ai bien vu votre message mais n'ai pas eu le temps de répondre.

    Je fais en ce moment des test, je posterais mon résultat une fois trouvé

  4. #4
    Membre régulier
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Points : 103
    Points
    103
    Par défaut
    Salut salut,

    Je reviens vers vous pour donner l'exemple d'un bout de code, histoire de partager mes découvertes.

    J'ai donc fait la simulation d'un combat entre un joueur et des monstres ainsi qu'un random sur les drops de monstre en cas de victoire. Ce n'est pas très poussé dans les attaques, c'était surtout pour mettre en avant l'inventaire, avec le drop, le drop max dans l'inventaire et j'en passe.

    Je voyais pas trop comment faire un inventaire et donc mettre des items ou des ressources dedans sans "simuler" un combat et par la même occasion, un drop de fin de combat.

    Je C/c mon code que vous pouvez améliorer et si vous trouvez des solutions plus simple, je suis preneur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    from random import randint
     
    inventaire= {}#creation de l'inventaire
    monsterdrop=["épée", "peau", "sarcophage", "crotte de chauves souris","rune","gantelet usagé","casque abîmé",\
    "plume de phoenix","ongle de troll", "venin de serpent", "queue d'hybride","Potion de soin", "Potion de mana"]
     #drop possible aleatoirement en cas de victoire du joueur
    monster= [1,2,3,4] #monstre de force 1, 2 et 3 tirer au hasard
    def retirer(monsterdrop):#suppression d'un item dans l'inventaire
        del inventaire[monsterdrop]
     
    def test_inventaire():#simulation d'un combat via les valeurs de force
        joueur = 3 #le joueur est de force 3"
        i = 1
        a = 1
        while a == True:#Condition de boucle notez que 1 suffit.
            z = randint(0,len(monsterdrop)-1)#random sur les drops en cas de victoire
            t = randint(0,len(monster)-1)#random sur la liste de monstre
            if len(inventaire) == 30:#si l'inventaire contient 30 objet, il n'y a plus de place dans l'inventaire
                print('Votre inventaire est plein')
                print("Veuillez retirer un ou plusieurs objets pour le débloquer")
                a=False#si utilisation de 1 en condition de boucle, mettre break
            else:
                if joueur > monster[t]: #si force de frappe du joueur est > à celle du monstre
                    if monsterdrop[z] in inventaire:#si le drop est déjà présent dans l'inventaire
                        inventaire[monsterdrop[z]] += i#ajouter +1 à chaque drop du même item
                        print(inventaire)
                        a=False 
                    elif monsterdrop[z] not in inventaire: # si le drop du monstre, n'est pas présent dans l'inventaire
                        inventaire[monsterdrop[z]] = 1 #ajout du drop dans l'inventaire
                        print(inventaire)
                        a=False
                elif joueur == monster[t]: # si la force de frappe du joueur est égal à celle du monstre, égalité
                    print("Égalité, vous ne dropez aucune ressource.")
                    a=False
                else: #sinon si la force du joueur n'est pas égal ou n'est pas supérieur
                    print("Vous avez perdu !") 
                    a=False

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 577
    Points
    218 577
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        a = 1
        while a == True:#Condition de boucle notez que 1 suffit.
    Autant mettre a = True, il n'y a aucune raison d'utiliser le "1". De plus, votre nommage des variables (chose très importante) est trop imprécise. Je veux dire : a pour fin_combat ... ce n'est pas très approprié. Le nom doit être précis et indiquer ce que cela fait, précisément.
    Pareil pour les autres variables, comme "i", "z", "t"...
    Après, je verrai plus de laisser (proposer) le choix de prendre un objet qui vient d'être droppé ou non. De plus, je proposerai une fonction d'affichage (mieux que print) de l'inventaire et une fonction pour choisir un objet (à abandonner).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Membre régulier
    Homme Profil pro
    employé
    Inscrit en
    Mars 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : employé

    Informations forums :
    Inscription : Mars 2015
    Messages : 75
    Points : 103
    Points
    103
    Par défaut
    Bonjour LittleWhite,

    Merci pour les tuyaux.

    En ce qui concerne le a =1, j'aurais en effet dû mettre a = True. N'étant encore qu'un débutant, je n'ai pas fait le rapprochement au premier abord sur la valeur du True/False. Après, je n'ai pas souhaité rendre ce bout de code parfait.

    Étant donné qu'il n'avait que pour unique but, de m'apprendre à "comment créer un inventaire", je n'ai donc pas fait d'effort sur le nommage des variables.

    Cependant, merci pour votre retour qui me permet d'améliorer ce dernier. Lorsque vous dites, "autre fonction d'affichage", vous pensez à "return" ?

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 577
    Points
    218 577
    Billets dans le blog
    120
    Par défaut
    return est un mot clef pour retourner (sortir) de la fonction, avec une valeur (valeur de retour).
    Moi, je parlais d'une fonction d'affichage, une fonction spécifique, qui affichera l'inventaire, par exemple, dans un tableau (ligne/colonne). Vous utilisez toujours des print, mais cela sera plus propre comme affichage pour l'utilisateur.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Comment Développer en équipe ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 45
    Dernier message: 19/11/2007, 00h15
  2. [CVS] Développer en équipe avec Eclipse et CVS
    Par ledoc_01 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 16/12/2003, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo