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

Création de jeux vidéo Discussion :

Débuter dans la programmation de jeux vidéo


Sujet :

Création de jeux vidéo

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut Débuter dans la programmation de jeux vidéo
    Bonjour alors voila j'ai envie de crée un jeux video sauf que je suis un peu perdu.
    j'ai commencer par choisir un langage, j'ai choisis le c++ donc j'ai commencer avec un tuto qui est sur un autre site mais j'ai vu sur plusieurs forum que se tuto étais pas mal critiquer donc j'ai arrêté de le suivre puis je me suis acheter le livre programmer en c++ de Claude Delannoy. Je commence a maîtriser un peu les bases, je continue toujours de le lire mais je sais pas trop comment continuer.. qu'elle est la prochaine étapes ? Faut que je choisis une bibliothèque non ?

  2. #2
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    C'est très bien de vouloir se lancer dans la création d'un jeu vidéo, mais ce monde est très compliqué .
    Choisir le C++ comme langage, est une bonne idée car il permet de faire un jeu vidéo .
    Ensuite tout dépend de quel type de jeu tu veux faire? 2D 3D? Multijoueur? ....
    Les cours et tutoriels pour apprendre C++ sur DVP sont très complet et te permettront de bien progresser en c++ avant de te lancer dans un jeu vidéo .

    En attendant dis moi ce que tu veux faire et je t'orienterais vers les libs les plus appropriées, voir un autre langage que c++ (unity avec C#, qui ressemble beaucoup à c++ permet de faire des jeux rapidement)
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Oui j'ai pu me rendre compte que c'étais très difficile de crée un jeux, beaucoup plus que se que j'aurais penser
    Et je sais aussi que le c++ n'est pas le plus facile des langage mais je l'aime bien, je pense etre assez motiver pour le continuer et je ne suis pas presser donc d'en un premier temps je voudrais apprendre a crée des fenêtre parce tout se que j'ai fait jusqu'a maintenant c'est sur console ensuite je voudrais faire des petit jeux en 2d pour voir comment je m'en sort et par la suite se serais plutôt pour un RPG 3d. Ou encore mieux un MMORPG mais la c'est vraiment beaucoup de boulot donc pour le moment je garde en tête le RPG simplement. Et je pense que je prefererais les lib bas niveau pour pouvoir bien comprendre comment ca marche et ne pas etre restreint sur se que je veut faire.
    Et j'aimerais bien pouvoir participer a des projet, je pense que ca m'aiderai mais je sais pas comment ca marche.

  4. #4
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Alors, participer à un projet sans aucune connaissance c'est très compliqué :/.

    Tu connais le c++ en console, donc tu vas pouvoir commencer (comme tout le monde) par faire un pendu en console, avec cet exercice, tu comprendras la manière de récupérer des informations depuis l'utilisateur et organisé ton code en "machine à état", faire les premiers algorithme, et stocker un état du jeu.

    Ensuite tu refais la même chose mais en graphique (je te conseille SFML pour la manipulation des images, affichage d'une fenêtre gestion des touches ....).

    Ensuite un tetris, qui amène la gestion de boucle événementielle, de niveau et plein d'autre truc.
    Après tu peux partir sur un jeu d'exploration, en 2D avec une map définie, où le joueur ne fait que se déplacer.
    Après tu peux rajouter un peu tout ce qui te passe par la tête pour compléter l'exercice, et apprendre, apprendre, apprendre. Jusqu'a avoir un mini-rpg en 2D .

    A partir de ce niveau là, tu auras un bagage minimal pour te lancer dans un autre jeu plus complexe, car tu comprendras les principales problématiques etc ....

    Si tu as des questions, n'hésite pas, je peux même te faire les énoncer pour les exercice, et t'aider dans la réalisation .
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Merci beaucoup je vais suivre tes conseil et je veut bien les énoncer des exercices et si jamais j'ai besoin d'aide je reviendrais sur se post. Et si cest possible quand j'aurais coder me dire si c'est bien fait aussi ?

  6. #6
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Oui pas de soucis, reste dans ce thread pour en discuter, ça servira à pas mal de personne je pense.

    Je suis d'ailleurs en train de voir pour créer un blog avec les énoncer, et les différentes approche, erreur commune etc ....

    Donc je vais surement m'entrainer avec toi dans ce thread pour savoir quoi mettre .

    Donc premier exercice: Le pendu
    1) Créer un programme en ligne de commande qui recevra en paramètre un chemin de fichier contenant une liste de mot (un mot par ligne).
    2) Ce programme devra prendre un mot au hasard dans la liste, le joueur aura 10 chance afin de trouver le mot.
    3) Une fois le mot choisis, le programme affichera sur la sortie standard un nombre de '_' équivalent au nombre de lettre du mot mystère.Puis une phrase "Choisissez une lettre: ".
    4) Il attendra ensuite que le joueur entre un caractère minuscule sur l'entrée standard suivi de la touche entrée.
    5) Si la lettre ne correspond pas à une lettre du mot mystère, le programme affichera "Perdu, il vous reste X tentatives" X étant le nombre de tentative restante. Le programme reprendra ensuite le point 3 et 4.
    6) Si la lettre correspond à une lettre du mot mystère, le programme affichera: "Bravo" puis remplacera les '_' correspondant, afin d'afficher les lettre correspondantes. Le programme reprendra ensuite le point 3 et 4.
    7) Si le mot mystère est complètement découvert, le programme affichera: "Félicitation, vous avez trouvé le mot mystère." puis quittera.
    8) Si le mot mystère n'est pas découvert et que le nombre de tentative est à 0, le programme affichera: "Vous êtes mort pendu, le mot mystère était:" suivi du mot mystère. Le programme s’arrêtera ensuite.

    Voila pour le premier .
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Tant mieux si ca t'aide aussi Merci pour l'énoncer se week end je peut pas mais dès lundi je mis met et je te tiens au courant.

  8. #8
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Ok pas de soucis, si tu veux bien, à chaque fin d'exercice, il faudrait me dire ce qui t'as posé problème, ce que tu aurais aimé avoir comme info etc ..... Tout ce qui pourrais m'aider à faire le blog en gros. Sachant que je ne posterais aucun code, je ne ferais que t'orienter, t'aider dans la réflexion, t'expliquer ce que fait des fonctions voir te donné les fonctions les plus utiles pour développer le programme, c'est la meilleurs manière d'apprendre pour moi plutôt que d'avoir du code tout fait .

    PS: Une aide sur la correction d'orthographe sera grandement appréciée n'étant pas un pros du Bescherelle ^^.
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 064
    Points
    219 064
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Nous proposons cette ressource : http://jeux.developpez.com/tutoriels/jeux-video/ pour mieux commencer (disons, s'orienter), car, on est pas obliger de faire les jeux en C++ et on peut faire des méga jeux avec pleins d'autres outils.

    @skeud : c'est prévu de publier sur Developpez.com, votre blog ? (je suis près à donner du support pour cela )
    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.

  10. #10
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    J'apporterais mon aide sur les devs c++ mais bien sur rien n’empêche de faire l'exercice dans un autre langage, le but étant d'apprendre des concept de création de jeux vidéo plus qu'un langage ou une lib . Par contre les ébauche de conception ou les guide seront fait en c++ avec des libs que je maîtrise (Je vais pas faire des indication sur quelque chose que je ne maîtrise pas ^^) .

    Concernant le blog, oui je vais le faire sur dvp, j'ai fait la demande hier et je suis en train de voir pour faire le premier exercice avec ce qu'il faut pour démarrer . D'ailleurs je fais aussi ce blog pour m’entraîner pour publier des tuto sur dvp . Donc j'améliorerais les articles au fur et à mesure pour ensuite les publier dans la section tuto .
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  11. #11
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Skeud : Oui pas de probleme je te noterais tous se qui m'as poser probleme et je t'aiderais comme je peut

    LittleWhite : j'ai deja lu se document mais moi se qui m'intéresse le plus pour le moment c'est de progresser en c++, c'est le langage qui m'interesse le plus et se que skeud ma proposer avec les exercices va beaucoup m'aider.

  12. #12
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Salut Skeud, j'ai terminer le pendu.
    Donc j'ai eu pas mal de petit soucis un peu partout mais le plus gros c'étais dans le remplacement des lettre.Le premier c'étais de remplacer le mot par des "_" mais une fois que j'ai trouver .size() ça a était. En fait l'as ou j'ai le plus bloquer c'est quand je devais remplacer la bonne lettre que l’utilisateur avait saisie au bon endroit et que quand y'avais deux même lettre dans le mot.Sinon le reste en réfléchissant un peu c'est passer
    Je refait la même chose avec sfml maintenant ?

  13. #13
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Salut, me demandais justement quand tu reviendrais ^^.

    Tu peux continuer sur la SFML, mais c'est beaucoup plus compliqué, n'hésite pas à venir poster dans ce thread, ça m'aidera grandement pour rédiger mes articles .

    Sinon tu peux poster ton code, je te dirais ce qui est bien de ce qui ne l'est pas .

    Tu l'as bien pas en c++? pas en C-like?
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  14. #14
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Oui j'avais terminer jeudi soir, je voulais te repondre vendredi mais j'ai pas vraiment eu le temps se week end xD
    Je te posterais se soir mon code et je t'indiquerais la ou j'ai eu des probleme et oui c'est en c++.

  15. #15
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Ok nickel, tu vois comment le faire en sfml du coup ou tu as besoin d'un coup de main?
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  16. #16
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Et bien pas vraiment. De soir j'essaierai deja de l'installer et j'ai vus que sur le site sfml il y avait des tuto non ?

  17. #17
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Oui il y a pas mal de tuto pour pouvoir débuter la sfml, je te conseil de regarder les parties window,image,ttf,evenement, normalement, avec ça tu devrais pouvoir modifier ton pendu existant pour l'adapter à la SFML, mais il serait bien que tu montre ton code du pendu avant de te lancer, je pourrais te donner des indications qui te serviront pour bien organiser ton code de manière à ce qu'il soit adaptable à la SFML, et d'une manière général, adaptable à n'importe quel API graphique .
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  18. #18
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Ok ca marche je vais commencer a regarder.
    voila mon code

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    #include <iostream>
    #include <string>
    #include <ctime>
    #include <cstdlib>
    #include <cstring>
    #include <fstream>
     
    using namespace std;
     
    int main()
    {
        ifstream listeMot ("listeDeMot.txt");
     
    if(listeMot)
     
    {   srand(time(0));
        int nAlea,i(0),nVie(10),i1(0),i2(0);
        nAlea = rand() % 19 + 1;
        string mot, motC,motF ;
     
        while(i<nAlea && getline(listeMot, motF ))
        {i++ ;}
     
        int nLettre = motF.size();
        motC.insert(0,nLettre,'_');
     
        char* lettre ;
        cout << "Jeu du pendu" << endl << endl ;
     
        while (motF != motC)
        {
        cout << motC << endl ;
        cout << "il vous reste " << nVie << "chance" << endl ;
        cout <<" Choisissez une lettre :" ;
        cin >> lettre ;
        cout << endl ;
            i=0;i1=0;i2=0;
            i = motF.find (lettre);
            i1 = i+1;
            i2 = motF.find(lettre, i1);
     
     
            if (motF.find(lettre,i2)<i2+1)
            {motC.replace(i,1,lettre);motC.replace(i2,1,lettre); }
            else if(motF.find(lettre)<i1)
            {motC.replace(i,1,lettre); }
            else if (nVie == 1)
            {cout << "Vous êtes mort pendu, le mot mystère était : " << motF << endl ; return 0; }
            else
            {nVie=nVie -1 ; cout << "Perdu," << endl ;}
     
     
     
        }
    cout << motF << endl ;
    cout <<"Félicitation vous avez trouver le mot mystère !" << endl;
    return 0;
    }
     
    else
    {
        cout << "une erreur est survenue lors de l'ouveture du fichier" << endl ;
        return 1;
    }
     
     
     
     
    return 0;
    }
    Et l'endroit ou j'ai le plus bloquer c'est ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     if (motF.find(lettre,i2)<i2+1)
            {motC.replace(i,1,lettre);motC.replace(i2,1,lettre); }
            else if(motF.find(lettre)<i1)
            {motC.replace(i,1,lettre); }
    Je ne savais pas quoi mettre dans la condition du if et du coup ca plantait le programme.

    Et aussi j'avais certain mot ou il y avait une lettre en trop et en fait c'est dans ma liste de mots j'avais laisser des espaces a la fin de certaines lignes donc je préfère le dire au cas ou si ca arrive a quelqu'un d'autre ^^

  19. #19
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Alors déjà plusieurs choses:
    _ Tu as fait le programme en C-like, tu n'utilise pas de classe, donc ce n'est pas top.
    _ Il faut essayer de respecter les normes le plus possible, ça facilite la compréhension et la relecture à savoir:
    _ Une instruction par ligne
    _ une indentation correct
    _ Eviter les variable de type i, i1, i2, mais utiliser des CompteurChaine, etc .... pour bien comprendre à quoi sert la variable lors d'une relecture.
    _ Ton programme ne marchera pas si on utilise un mot avec plus de 2 lettre similaire: déterrer par exemple.

    Pour bien comprendre comment faire ton programme, il faut d'abord que tu le pose en pseudo-code, de cette manière:
    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
    Lecture du fichier
    Choisir un nombre aléatoire
    parcourir les mots jusqu'au nombre aléatoire
    tant que le mot n'est pas trouvé ou que le nombre de vie est superieur à 0
      afficher motCaché
      afficher "choisir une lettre"
      entrée -> lettre
      si motCaché contient lettre
        i = 0;
        tant que i < la taille de mot caché
          si motATrouver[i] == lettre
            motCaché[i] = lettre
        fin tant que
      sinon
        vie--
    fin tant que
    si vie > 0
      afficher "gagner"
    sinon
      afficher "perdu"
    ça c'est pour une approche C-Like comme tu as fait.
    Pour faire en c++, il faudrait:
    Une classe joueur qui contient le nombre de vie.
    Une classe motMystère qui contient le mot mystère
    et ça donnerait:

    Joueur.h:
    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
    #ifndef JOUEUR_HPP_
    #define JOUEUR_HPP_
     
    class Joueur
    {
    public:
    	Joueur()
    	{
    		_Life = 10;
    	}
    	bool isAlive()
    	{
    		return (_Life > 0);
    	}
    	void loseLife()
    	{
    		std::cout << "Vous perdez une vie" << std::endl;
    		std::cout << "il vous reste " << _Life << " vies" << std::endl;
    		_Life--;
    	}
    private:
    	int _Life;
    };
    #endif
    MotMystere.h:
    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
    38
    39
    40
    41
    42
    43
    44
    #ifndef MOTMYSTERE_HPP_
    #define MOTMYSTERE_HPP_
     
    class MotMystere
    {
    public:
    	MotMystere(std::string mot)
    	{
    		_MotATrouver = mot;
    		_MotCache.insert((int)0, _MotATrouver.size(), '_');
    	}
    	std::string getMotCache()
    	{
    		return (_MotCache);
    	}
    	bool testLettre(char lettre)
    	{
    		int i = 0;
    		bool ret = false;
    		while (i < _MotATrouver[i])
    		{
    			if (_MotATrouver[i] == lettre)
    			{
    				_MotCache[i] = lettre;
    				ret = true;
    			}
    			i++;
    		}
    		return (ret);
    	}
    	bool estTrouver()
    	{
    		return (_MotCache == _MotATrouver);
    	}
    	std::string getMot()
    	{
    		return (_MotATrouver);
    	}
    private:
    	std::string _MotCache;
    	std::string _MotATrouver;
    };
     
    #endif
    main.cpp:
    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
    #include <iostream>
    #include <string>
     
    #include "Joueur.h"
     
    #include "MotMystere.h"
     
    int main()
    {
    	Joueur joueur;
    	MotMystere mot("supermotdelamort");
    	char lettreChoisie;
     
    	while (joueur.isAlive() && !mot.estTrouver())
    	{
    		std::cout << mot.getMotCache() << std::endl;
    		std::cout << "Choisir une lettre" << std::endl;
    		std::cin >> lettreChoisie;
    		if (!mot.testLettre(lettreChoisie))
    			joueur.loseLife();
    	}
    	if (joueur.isAlive())
    		std::cout << "bien jouer, vous avez gagné" << std::endl;
    	else
    		std::cout << "perdu, le mot était " << mot.getMot() << std::endl;
    	return (0);
    }
    Ensuite pour ce type de programme, il est pas forcément nécessaire de faire des classe, mais c'est dans le cadre de l'apprentissage de la programmation de jeu, il faut toujours englober chaque petits éléments dans une classe et les manipuler via des methode, et non pas influencer directement les variable qu'ils contiennent. ça permet de garder que le fonctionnel à haut niveau et de laisser les detail à chaque classe pour gérer comme elle veut ses variables .
    Pas de solution, pas de probleme

    Une réponse utile (ou +1) ->
    Une réponse inutile ou pas d'accord -> et expliquer pourquoi
    Une réponse à votre question


  20. #20
    Candidat au Club
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Décembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Décembre 2014
    Messages : 22
    Points : 4
    Points
    4
    Par défaut
    Ah ok, je savais pas que c'etais ca le C-Like. C'est vrai que j'ai pas penser a utiliser de classes et pour le fait qui le marcheras pas si y'a plus de deux lettre identique j'y avait penser... Mais un peu tard XD
    Du coup je fait quoi j'essaie de me corriger ? ( j'ai pas lu ton code du coup :p )

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/06/2008, 16h41
  2. Par ou commencer dans la programmation de Jeux ?
    Par zalouz80 dans le forum Moteurs 3D
    Réponses: 5
    Dernier message: 18/06/2008, 18h17
  3. Réponses: 7
    Dernier message: 12/03/2008, 15h53
  4. Réponses: 9
    Dernier message: 12/12/2007, 11h31

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