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 un Text Aventure -


Sujet :

Création de jeux vidéo

  1. #1
    Candidat au Club
    Homme Profil pro
    Coach
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Coach
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Débuter un Text Aventure -
    Bonjour.

    Je m'excuse d'avance si je ne suis pas dans la bonne section pour cela.

    J'ai commencé à programmer un Text Aventure en C++ via Console. N'ayant que très peu d'expérience (Seulement deux semaines que j'apprends à programmer), je ne serais dire si ce que je fais est bon ou mauvais . Bien que mon code marche normalement, j'aimerai avoir un avis voir même des conseils sur comment améliorer mon code ou bien pointer mes erreurs.

    Voilà mon Code pour ceux que ça intéresse.

    Core.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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    #include <iostream>
    #include <conio.h>
    #include <stdlib.h>
     
    #include "Player.h"
    #include "Male_Route.h"
    #include "Female_Route.h"
     
     
    int main()
    {
    	Player player;
    	Route_M route_m;
    	Route_F route_f;
     
    	system("MODE   CON        COLS=100            LINES=40"); /*Definit la fenêtre de la Console*/
     
    	std::cout << "--------------------------------------Bienvenue dans Training--------------------------------------\n" << std::endl;
     
    	_getch();
     
    	std::cout << "\nMais dit moi... Es-tu un Garcon ou bien une Fille ? 1 - Garcon, 2 - Fille\n" << std::endl;
     
    	if (player.Gender() == 1)
    	{
    		std::cout << "Je vois bien que tu es un jeune homme !" << std::endl;
    		_getch();
    		route_m.Prologue();
    		_getch();
    		route_m.Chap1();
    	}
    	else
    	{
    		std::cout << "Vos long cheveux me donnaient deja la reponse." << std::endl;
    		_getch();
    		route_f.Prologue();
    		_getch();
    		route_f.Chap1();
    	}
     
    	_getch();
     
    	return 0;
    }
    Player.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
    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    #pragma once
    #ifndef JOUEUR_HPP_
    #define JOUEUR_HPP_
    #include <iostream>
    #include <stdio.h>
     
    //Class Contenant toutes les données du Personnage
     
    class Player
    {
    public:
    	char Nom[10];
    	int Job = 0;
    	std::string ClassName;
     
    	Player()
    	{
    		_HP = 10;
    	}
    		int name()     /*Nom du Joueur*/
    		{
    			std::cout << "Pourrais-je savoir votre prenom ?" << std::endl;
    			std::cin >> Nom;
    			std::cout << "\n" << std::endl;
    			return 0;
    		};
     
    		int Gender()   /*Sexe du Joueur. Male ou Femelle*/
    		{
    			std::cin >> sexe;
    			if (sexe == 1)
    			{
    				return 1;
    			}
    			else
    			{
    				return 2;
    			}			
    		}
     
    		int GetJobWarrior() /*Le joueur devient Guerrier*/
    		{
    			Job = 1;
    			ClassName = "Guerrier";
    			return 0;
    		}
     
    		int GetJobRogue() /*Le Joueur devient Voleur*/
    		{
    			Job = 2;
    			ClassName = "Voleur";
    			return 0;
    		}
     
    		int GetJobMage() /*Le Joueur devient Mage*/
    		{
    			Job = 3;
    			ClassName = "Mage";
    			return 0;
    		}
     
    		int GetJobPriest() /*Le Joueur devient Prêtre*/
    		{
    			Job = 4;
    			ClassName = "Pretre";
    			return 0;
    		}
     
    		void LoseLife() /*Le Joueur perd de la Vie*/
    		{
    			_HP = _HP - 1;
    			std::cout << "HP restant : " << _HP << "\n" << std::endl;
    		}
     
    private:
    	int sexe;
    	int _HP;
    };
    #endif
    Male_Route.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
    #pragma once
    #include <iostream>
    #include "Player.h"
     
    // Route d'un Personnage Mâle. Intro et 1er Phase du jeu sera ici //
     
    class Route_M :Player
    {
    public:
     
    	Player player;
     
    	Route_M()
    	{
    	}
     
    	void Prologue() // Debut du jeu. Prend le no du Joueur //
    	{
    		player.name();
    		std::cout << player.Nom << ". C'est un nom qui a l'air de vous convenir.\n" << std::endl;
    		std::cout << "Il est temps maintenant pour toi de commencer ton aventure " << player.Nom << ". Tu rencontreras differentes personnes au cour de ton periple." <<
    			" N'oublie jamais qu'il faudra reflechir a deux fois avant de faire un choix !" << std::endl;
    	}
     
    	void Chap1()
    	{
    		std::cout << "\n-----------------------------------CHAPTER ONE - ESCAPE------------------------------------\n\n" << std::endl;
    	}
    };
    Female_Route.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
    #pragma once
    #include <iostream>
    #include "Player.h"
     
    // Route d'un Personnage Femelle. Intro et 1er Phase du jeu sera ici //
     
     
    class Route_F :Player
    {
    public:
    	Player player;
     
    	Route_F()
    	{
    	}
     
    	void Prologue() // Debut du Jeu. Prend le nom du joueur //
    	{
    		player.name();
    		std::cout << player.Nom << ". Vous avez un nom ravissant madmoiselle.\n" << std::endl;
    		std::cout << "Il est temps maintenant pour toi de commencer ton aventure "<< player.Nom << ". Tu rencontreras differentes personnes au cour de ton periple." <<
    			" N'oublie jamais qu'il faudra reflechir a deux fois avant de faire un choix !" << std::endl;
    	}
     
    	void Chap1()
    	{
    		std::cout << "\n---------------------------------------Histoire--------------------------------------\n\n" << std::endl;
    	}
    };
    Voilà mon code que j'ai fais jusqu'à maintenant. Je remercie d'avance ceux qui viendront me donner des conseils.

  2. #2
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 060
    Points
    32 060
    Par défaut
    Je n'y connais rien en C++, mais vu de loin, ton code m'a l'air propre et découpé logiquement. Pour quelqu'un qui a deux semaines de prog derrière lui, c'est encourageant.

    Comme j'adore chipoter, je dirais que l'usage de chaines de caractères "en dur" dans le main n'est pas une pratique à recommander, mais si c'est juste pour faire une aventure rapide, y'a pas de sushi avec ça. C'est quand tu commenceras à avoir 5000 lignes de code que ça risque de gêner.

    Plus généralement, les "bonnes pratiques" sont là pour les projets massifs développés à plusieurs. Si c'est pour s'amuser juste un peu, pas besoin de s'embarquer dans des trucs très compliqués. Si par contre tu est ambitieux, alors il faudra te farcir 2/3 trucs en plus, comme l'export des textes dans un fichier dédié(pour faciliter la traduction, par exemple).
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  3. #3
    Membre expert
    Avatar de MarieKisSlaJoue
    Homme Profil pro
    Ingénieur Cloud
    Inscrit en
    Mai 2012
    Messages
    1 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Roumanie

    Informations professionnelles :
    Activité : Ingénieur Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 145
    Points : 3 653
    Points
    3 653
    Billets dans le blog
    20
    Par défaut
    C'est très bien en C mais en C++ utilise plutôt la classe string. Car en l’occurrence sais tu ce qui se passe si le nom entré est supérieur à la taille de ton tableau ?
    En fait aucune erreur de donnée ne semble être gérer. Il ne faut pas oublié que l'utilisateur peut renter absolument n'importe quoi. C'est un axe d'amélioration.
    Sinon en lui même le code est plutôt propre et bien découpé. Assez bluffant pour deux semaine de programmation en effet.
    Ce post à été écrit par un panda
    Apollo 11 - AGC revue de code
    -- qwerty keybord

  4. #4
    Candidat au Club
    Homme Profil pro
    Coach
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Coach
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci de vos réponses. J'ai pu constater qu'effectivement qu'il y avait des choses "désagréables" dans le code en vous écoutant.

    el_slapper --> Merci de ta remarque. J'ai effectué des modifications en conséquence pour libéré le main. Mais j'aimerai savoir si c'est possible, pourquoi c'est déconseillé d'écrire des chaines de caractères dans le main ?

    MarieKisSlaJoue --> Effectivement j'étais partie sur un char car je partais sur la base qu'un nom de personnage ne dépassera pas ce nombre de caractère. Et merci d'avoir pointé le problème des erreurs de donnée entré par le joueur. Je me suis penché sur le problème durant l'après-midi. Je pense avoir trouvé une solution en créant des boucles pour chaque entrer.
    Core.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 <conio.h>
    #include <stdlib.h>
     
    #include "Player.h"
    #include "Male_Route.h"
    #include "Female_Route.h"
    #include "Choice.h"
     
     
    int main
    ()
    {
    	Player player;
    	Route_M route_m;
    	Route_F route_f;
     
    	system("MODE   CON        COLS=100            LINES=40"); /*Definit la fenêtre de la Console*/
     
    	std::cout << "--------------------------------------Bienvenue dans Training--------------------------------------\n" << std::endl;
    	_getch();
     
     
    	Choice();
    	_getch();
     
    }
    Player.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
    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    #pragma once
    #ifndef JOUEUR_HPP_
    #define JOUEUR_HPP_
    #include <iostream>
    #include <stdio.h>
    #include <string>
     
    //Class Contenant toutes les données du Personnage
     
    class Player
    {
    public:
    	std::string playername;
    	std:: string ClassName;
    	std::string RaceName;
    	std::string GenderName;
    	int sexe;
     
     
    	Player()
    	{
    		_HP = 10;
    	}
    		int name()     /*Nom du Joueur*/
    		{
    			std::cout << "Choissisez un nom pour votre aventurier : ";
    			std::cin >> playername;
    			return 0;
    		};
     
    		int Gender()
    		{
    			std::cout << "Choissisez un sexe : \n";
    			std::cout << "1 - Male\n";
    			std::cout << "2 - Femelle\n";
    			std::cout << "Choissiez un sexe : ";
     
    			do     /* Boucle pour le sexe du Personnage */
    			{
    				std::cout << "Choissiez un sexe : ";
    				std::cin >> sexe;
    				if (sexe == 1)
    				{
    					GenderName = "Homme";
    					std::cout << GenderName << "\n";
    					return 1;
    				}
    				else if (sexe == 2)
    				{
    					GenderName = "Femme";
    					std::cout << GenderName << "\n";
    					return 2;
    				}
    			} while (sexe != 1 && sexe != 2);
     
    			return 0;
    		}
     
     
    		void Race()
    		{
    			std::cout << "Choissisez parmis les races disponibles : \n";
    			std::cout << "1 - Human\n";
    			std::cout << "2 - Orc\n";
    			std::cout << "3 - Elf\n";
    			int pickRace;
     
    			do    /* Boucle pour le choix de la Race */
    			{
    				std::cout << "Choissisez votre race : ";
    				std::cin >> pickRace;
     
    				if (pickRace == 1)
    				{
    					RaceName = "Humain";
    					std::cout << RaceName << "\n";
    				}
    				else if (pickRace == 2)
    				{
    					RaceName = "Orc";
    					std::cout << RaceName << "\n";
    				}
    				else if (pickRace == 3)
    				{
    					RaceName = "Elf";
    					std::cout << RaceName << "\n";
    				}
    			} while (pickRace !=1 && pickRace !=2 && pickRace !=3);
    		}
     
    		void Class()
    		{
    			std::cout << "Choissisez parmis l'une des classes suivent : \n";
    			std::cout << "1 - Guerrier\n";
    			std::cout << "2 - Voleur\n";
    			std::cout << "3 - Mage\n";
    			int pickClass;
     
    			do
    			{
    				std::cout << "Choissisez votre classe : ";
    				std::cin >> pickClass;
    				if (pickClass == 1)
    				{
    					ClassName = "Guerrier";
    					std::cout << ClassName << "\n";
    				}
    				else if (pickClass == 2)
    				{
    					ClassName = "Voleur";
    					std::cout << ClassName << "\n";
    				}
    				else if (pickClass == 3)
    				{
    					ClassName = "Mage";
    					std::cout << ClassName << "\n";
    				}
    			} while (pickClass != 1 && pickClass != 2 && pickClass != 3);
    		}
     
     
    		void LoseLife() /*Le Joueur perd de la Vie*/
    		{
    			_HP = _HP - 1;
    			std::cout << "HP restant : " << _HP << "\n" << std::endl;
    		}
     
    private:
    	int _HP;
    };
    #endif
    Choice.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
    #pragma once
    #ifndef CHOICE_HPP_
    #define CHOICE_HPP_
    #include <iostream>
    #include <conio.h>
     
    #include "Player.h"
    #include "Female_Route.h"
    #include "Male_Route.h"
     
     
    class Choice
    {
    public:
    	Player player;
    	Route_F route_f;
    	Route_M route_m;
     
    	Choice()
    	{
    		player.name();
    		player.Gender();
    		player.Race();
    		player.Class();
     
    		if (player.sexe = 1)
    		{
    			route_m.Prologue();
    			route_m.Chap1();
    		}
    		else if (player.sexe = 2)
    		{
    			route_f.Prologue();
    		}
    	}
     
     
    private:
    };
    #endif
    Male_Route.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
    #pragma once
    #include <iostream>
    #include "Player.h"
     
    // Route d'un Personnage Mâle. Intro et 1er Phase du jeu sera ici //
     
    class Route_M 
    {
    public:
     
    	Player player;
     
    	Route_M()
    	{
    	}
     
    	void Prologue() // Debut du jeu. Prend le no du Joueur //
    	{
    		std::cout << player.playername<< ". C'est un nom qui a l'air de vous convenir.\n" << std::endl;
    		std::cout << "Il est temps maintenant pour toi de commencer ton aventure " << player.playername << ". Tu rencontreras differentes personnes au cour de ton periple." <<
    			" N'oublie jamais qu'il faudra reflechir a deux fois avant de faire un choix !" << std::endl;
    	}
     
    	void Chap1()
    	{
    		std::cout << "\n-----------------------------------CHAPTER ONE - ESCAPE------------------------------------\n\n" << std::endl;
    		std::cout << player.playername;
    	}
    };
    Female_Route.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
    #pragma once
    #include <iostream>
    #include "Player.h"
     
    // Route d'un Personnage Femelle. Intro et 1er Phase du jeu sera ici //
     
     
    class Route_F :Player
    {
    public:
    	Player player;
     
    	Route_F()
    	{
    	}
     
    	void Prologue() // Debut du Jeu. Prend le nom du joueur //
    	{
    		std::cout << player.playername << ". Vous avez un nom ravissant madmoiselle.\n" << std::endl;
    		std::cout << "Il est temps maintenant pour toi de commencer ton aventure "<< player.playername << ". Tu rencontreras differentes personnes au cour de ton periple." <<
    			" N'oublie jamais qu'il faudra reflechir a deux fois avant de faire un choix !" << std::endl;
    	}
     
    	void Chap1()
    	{
    		std::cout << "\n---------------------------------------Histoire--------------------------------------\n\n" << std::endl;
    	}
    };
    Voilà, mon code à present. Maintenant j'ai un problème qui vient d'arriver :

    Je n'arrive pas à afficher le nom du joueur bien qu'il fût entrer. Le code marche, mais n'affiche pas le nom du joueur.

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 022
    Points : 5 455
    Points
    5 455
    Par défaut
    Je ne connais pas le C++ alors je dis peut être une bêtise , mais je ne vois pas d'affectation de l'attribut player de la classe Route par le Player que tu as défini dans Choice.
    Du coup tu ne conserves pas l'objet.

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


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

    En théorie, le code (le comportement des fonctions) doit être dans des fichiers CPP et il est généralement pas apprécié de voir le code dans le .h. Dans le .h il ne doit y avoir que les déclarations des fonctions, mais sans le code (car il sera dans les fichier .cpp).
    Pour l'histoire du choix de l'homme et de la femme, vous pouvez faire mieux, grâce à l'héritage (certes, c'est une option plus avancé). L'héritage vous permettra de faire un truc comme :
    Et si perso est une Femme, ou un Homme, il va exécuter le code approprié par rapport à ce qu'il est.

    Voir donc les cours sur l'héritage et le polymorphisme.
    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.

  7. #7
    Candidat au Club
    Homme Profil pro
    Coach
    Inscrit en
    Mars 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Coach
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour.

    Merci de vos réponses. Encore une fois rien cas vous lire j'en apprends un peu plus ^_^

    micka132 --> Merci de ta remarque. Je n'avais pas remarqué ce détail là. Je me suis un peu trop emmêler les pinceaux en codant.

    LittleWhite --> Merci pour le lien du cour, il m'a été d'une grande aide je dois dire. Bien que j'ai rien compris au début, je crois avoir à peu près compris comment le tous marche. Et je me demandais pourquoi "il est généralement pas apprécié de voir le code dans le .h. Dans le .h il ne doit y avoir que les déclarations des fonctions, mais sans le code (car il sera dans les fichier .cpp)." ? Serait-ce pour une histoire d'optimisation ou bien simplement pour alléger le code ?

    Sinon j'ai refais mon codage.

    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
    #include <iostream>
    #include <conio.h>
    #include <stdlib.h>
     
    #include "Player.h"
    #include "Prologue.h"
     
     
    int main(int argc, char * const argv[])
    {
    	Player P;
    	Prologue Test;
     
    	system("MODE   CON        COLS=100            LINES=40"); /*Definit la fenêtre de la Console*/
     
    	std::cout << "--------------------------------------Bienvenue dans Training--------------------------------------\n" << std::endl;
    	_getch();
     
    	Test.Intro(P);
     
     
    	_getch();
     
    }
    Main.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #ifndef MAIN_H
    #define MAIN_H
     
    #include <string>
     
    class Player;
    class Prologue;
     
    #endif // !MAIN_H
    Player.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
    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    #include "Player.h"
     
     
    int Player::SelectName()     /*Nom du Joueur*/
    {
    	std::cout << "Choissisez un nom pour votre aventurier : ";
    	std::cin >> name;
    	return 0;
    };
     
    int Player::SelectGender()
    {
    	std::cout << "Choissisez un sexe : \n";
    	std::cout << "1 - Male\n";
    	std::cout << "2 - Femelle\n";
     
    	do     /* Boucle pour le sexe du Personnage */
    	{
    		std::cout << "Choissiez un sexe : ";
    		std::cin >> sexe ;
    		if (sexe == 1)
    		{
    			GenderName = "Homme";
    			return 1;
    		}
    		else if (sexe == 2)
    		{
    			GenderName = "Femme";
    			return 2;
    		}
    	} while (sexe != 1 && sexe != 2);
     
    	return 0;
    }
     
    void Player::SelectRace()
    {
    	std::cout << "Choissisez parmis les races disponibles : \n";
    	std::cout << "1 - Human\n";
    	std::cout << "2 - Orc\n";
    	std::cout << "3 - Elf\n";
    	int pickRace;
     
    	do    /* Boucle pour le choix de la Race */
    	{
    		std::cout << "Choissisez votre race : ";
    		std::cin >> pickRace;
     
    		if (pickRace == 1)
    		{
    			RaceName = "Humain";
    		}
    		else if (pickRace == 2)
    		{
    			RaceName = "Orc";
    		}
    		else if (pickRace == 3)
    		{
    			RaceName = "Elf";
    		}
    	} while (pickRace != 1 && pickRace != 2 && pickRace != 3);
    }
     
    void Player::SelectClass()
    {
    	std::cout << "Choissisez parmis l'une des classes suivent : \n";
    	std::cout << "1 - Guerrier\n";
    	std::cout << "2 - Voleur\n";
    	std::cout << "3 - Mage\n";
    	int pickClass;
     
    	do
    	{
    		std::cout << "Choissisez votre classe : ";
    		std::cin >> pickClass;
    		if (pickClass == 1)
    		{
    			ClassName = "Guerrier";
    		}
    		else if (pickClass == 2)
    		{
    			ClassName = "Voleur";
    		}
    		else if (pickClass == 3)
    		{
    			ClassName = "Mage";
    		}
    	} while (pickClass != 1 && pickClass != 2 && pickClass != 3);
    }
     
    void Player::Display()
    {
    	std::cout << "Nom de l'Aventurier : " << name << std::endl;
    	std::cout << "Sexe de l'Aventurier : " << GenderName << std::endl;
    	std::cout << "Race de l'Aventurier : " << RaceName << std::endl;
    	std::cout << "Classe de l'Aventurier : " << ClassName << std::endl;
    }
    Player.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
    #ifndef Player_H
    #define Player_H
     
    #include <iostream>
    #include "Main.h"
     
    //Class Contenant toutes les données du Personnage
     
    class Player
    {
    public:
    	std::string name;
    	std::string GenderName;
    	std::string RaceName;
    	std::string ClassName;
    	short health;
    	short sexe;
     
     
    	int SelectName();
    	int SelectGender();
    	void SelectRace();
    	void SelectClass();
    	void Display();
     
    };
     
    #endif
    Prologue.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include "Prologue.h"
     
    void Prologue::Intro(Player& MC)
    {
    	MC.SelectName();
    	MC.SelectGender();
    	MC.SelectRace();
    	MC.SelectClass();
    	MC.Display();
    }
    Prologue.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
    #ifndef PROLOGUE_H
    #define PROLOGUE_H
     
    #include <iostream>
    #include "Main.h"
    #include "Player.h"
     
    class Prologue
    {
    public:
     
    	void Intro(Player&);
     
    };
     
    #endif // !PROLOGUE_H
    Voilà, voilà. J'ai décidé de me concentrer sur une seul Route qu'importe le Sexe du personne pour ne pas me compliqué trop la tâche pour un premier jeux.

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 855
    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 855
    Points : 218 551
    Points
    218 551
    Billets dans le blog
    118
    Par défaut
    La FAQ est aussi une excellente lecture.

    On met le code dans les CPP, notamment pour ne pas avoir des définitions multiples. En effet, le compilateur traite les fichiers CPP séparément (unités de compilation). Chaque fichier .cpp va faire des inclusions. Les inclusions sont de réelles copier/coller effectuées par le pré-processeur. Du coup, cela voudrait dire, que pour chaque unité de compilation, incluant un tel fichier, le même code sera compilé et présent plusieurs fois. L'éditeur de liens (qui rassemblent toutes les unités de compilation pour faire l'exécutable) va faire une erreur, car il va voir deux fois (ou plus) le code de telle ou telle fonctions et ça, ce n'est pas logique .
    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. [Recrutement] ZTAB : Editeur de jeux d'aventure Texte / Images
    Par Harry_polin dans le forum Projets
    Réponses: 10
    Dernier message: 03/07/2022, 00h45
  2. Quel logiciel (EDI) pour débuter en programmation ?
    Par mimosa69 dans le forum Débats sur le développement - Le Best Of
    Réponses: 13
    Dernier message: 17/01/2016, 16h45
  3. Débat : quelle distribution Linux choisir pour débuter ?
    Par Anonymous dans le forum Distributions
    Réponses: 227
    Dernier message: 18/02/2015, 10h09
  4. afficher du texte
    Par Mau dans le forum OpenGL
    Réponses: 10
    Dernier message: 24/06/2003, 15h31
  5. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 11h29

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