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

C++ Discussion :

Désespéré :D Help svp


Sujet :

C++

  1. #21
    Membre régulier Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 81
    Points
    81
    Par défaut
    A priori, oui.
    Tu as deux objets, donc si tes variables membres ne sont pas static, tu auras bien 2 jeux de données.

  2. #22
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    ok merci de ton aide je vais tester sa je reviendrai si j'ai un probleme merci

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    je comprend plus rien ...
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void Joueurs::VerifCouler(int NumeroBateaux,Joueurs J)
    {
    	int BateauxToucher;
    	switch(NumeroBateaux)
    	{
    		case 5: J.GetSonPorteAvion();
    			    J.SetSonPorteAvion();
    				... pour chaque bateau
    Ici il s'emblerai que je paramètre J (ou est passer J1 ou J2 ) ne soit pas pris en compte car normalement mais int devrai etre decrementer et ce n'est pas le cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int Joueurs::GetSonPorteAvion()
    {
    	return PorteAvion;
    }
    Il c'est mon accesseur car mon entier est en privé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void Joueurs::SetSonPorteAvion()
    {
    	PorteAvion=PorteAvion-1;
    		std::cout<<std::endl;
    }
    Et la je voulais faire une fonction pour décrementer mon int a chaque fois qu'il est toucher

    Si quelque peu m'expliquer ou est mon pb car je pence que sa vien de mon paramètre constructeur mais je compren pas pourquoi car il n'y a pas d'erreur

    Bon apres quelque test j'ai decouvert que en faite sa n'accede pas a ma fonction GetPorteAvion, j'ai rajouter de std::cout dedans et sa ne les affiche pas donc sa ne doit pas y acceder...

  4. #24
    Membre actif Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Points : 274
    Points
    274
    Par défaut
    Un effort a faire: ecrire correctement tes phrases avec le moins de fautes d'orthographe possible. Merci.

    Tu ne veux vraiment pas poster tout ton code sur le site que je t'ai indiqué?
    Tu fais J.GetPorteAvion() mais tu ne le stocke nulle part.

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    ba si je vais le mettre mais il n'y a aucun commentaire donc je c'est pas si vous allez comprendre quelquechose. Et que veux tu dire par stocker ???

    Je te met le code
    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 <map>
    #include "Partie.hpp"
     
     
     
    int main()
    {
    	int x;
    	std::cout<<"Menu:"<<std::endl;
    	std::cout<<"1- Créer une partie"<<std::endl;
    	std::cout<<"2- Charger une partie"<<std::endl;
    	std::cout<<"3- Exit"<<std::endl;
    	std::cin>>x;
    	Partie Partie1;
    	switch(x)
    	{
    		case 1: Partie1.execute();break;
    		case 2: break;
    		case 3: break;
    		default: main();
    	}
    	return 0;
    }
    Partie.hpp
    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
    #include <iostream>
    #include <map>
    #include <set>
    #include "Joueurs.hpp"
     
    class Partie
    {
    		Joueurs J1;
    		Joueurs J2;
    		int TabBateauxJ1 [25][25];
    		int TabBateauxJ2 [25][25];		
    	public:
     
    		int SonTirX,SonTirY;
    		int SonX,SonY;
    		char SaDirection;
    		int NumeroBateau;
    		int PorteAvions;
    		int SaLongueur;
    		void PlacementBateaux(int Tab [][25]);
    		void Tir(int TabJr [][25],char TabTir[][25],Joueurs J);
    		void initialisation();
    		void TourDeJeu();
    		void affiche(std::string);
    		void execute();
    		void PauseEfface();
    		char TabTirJ2[25][25];
    		char TabTirJ1[25][25];
    		Partie();
     
    };
    Partie.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
    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
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    #include "Partie.hpp"
    #include <stdexcept>
    #include "Bonus.hpp"
     
     
     
     
    Partie::Partie()
    {}
     
    void Partie::initialisation()
    {
    	for(int y = 0; y < 25; y++)
    	{
    		for(int x = 0; x < 25; x++)
    		{
    			TabBateauxJ1[x][y]=0 ;
    			TabBateauxJ2[x][y]=0;
    			TabTirJ2[x][y]='-';
    			TabTirJ1[x][y]='-';
    		}
    	}
    }
     
     
    void Partie::PlacementBateaux(int Tab [][25]) 
    {
    	int Bateaux=2;
    	while(Bateaux>=2 && Bateaux<=5)
    	{
    		std::cout<<"Entrez une position pour le ";
    		switch(Bateaux)
    			{
    				case 2: std::cout<<"Torpilleur"<<std::endl;break;
    				case 3: std::cout<<"Destroyer"<<std::endl;break;
    				case 4: std::cout<<"Croiseur"<<std::endl;break;
    				case 5: std::cout<<"Porte-Avion"<<std::endl;break;
    				default: std::cout<<"erreur"<<std::endl;
    		}
    		//try
    		//{
    			std::cin>>SonX>>SonY;
    		//	if(SonX<=0 || SonX>25 || SonY<=0 || SonY>25)
    		//		throw(true);
    		//}
    		//catch(bool & e)
    		//{
    		//	std::cout<<"Erreur veuillez entrer un chiffre entre 1 et 25"<<std::endl;
    		//	std::cin>>SonX>>SonY;
    		//}
     
    		std::cout<<"Placement Horizontal(h) ou vertical(v) ?"<<std::endl;
    		std::cin>>SaDirection;
    		SaLongueur=0;
    			if (SaDirection=='h' || SaDirection=='H')
    			{
    				while(SaLongueur<Bateaux)
    				{
    				int Taille=Bateaux;
    				std::cout<<SonX<<";"<<SonY<<std::endl;
    				(Tab[SonX-1][SonY-1])=Taille; // probleme si le tableau vaut Tableau; [SonX-1][SonY-1]car un tableau commence �0
    				SonY++;
    				SaLongueur++;
    				}
    			}
    			if (SaDirection=='v' || SaDirection=='V')
    			{
    				while(SaLongueur<Bateaux)
    				{
    				int Taille=Bateaux;
    				std::cout<<SonX<<";"<<SonY<<std::endl;
    				(Tab[SonX-1][SonY-1])=Taille; // probleme si le tableau vaut Tableau; [SonX-1][SonY-1]car un tableau commence �0
    				SonX++;
    				SaLongueur++;
    				}
    			}
    	Bateaux++;
    	std::cout<<std::endl;
    	}
    }
     
    void Partie::affiche(std::string Joueur)
    {
    	if(Joueur=="J1")
    	{
    		std::cout<<"Maps Joueurs 1"<<std::endl<<std::endl;
    		for(int i = 0; i < 25; i++)
    		{
     
    			for(int j = 0; j < 25; j++)
    				std::cout << TabBateauxJ1[i][j];
    				std::cout<<"  ";
    			for(int j = 0; j < 25; j++)	
    				std::cout << TabTirJ1[i][j];
    				std::cout << std::endl;
    		}
    	}
    	if(Joueur=="J2")
    	{
    		std::cout<<"Maps Joueurs 2"<<std::endl<<std::endl;
    		for(int i = 0; i < 25; i++)
    		{
    			for(int j = 0; j < 25; j++)
    				std::cout << TabBateauxJ2[i][j];
    				std::cout<<"  ";
    			for(int j = 0; j < 25; j++)
    				std::cout<<TabTirJ2[i][j];
    				std::cout << std::endl;
    		}
    	}
    }
     
     
    void Partie::Tir(int TabJr [][25],char TabTir[][25], Joueurs J)
    {
    	if(TabJr==TabBateauxJ2)
    	{
    		std::cout<<"Joueur 1 ";
    	}
    	else
    	{
    		std::cout<<"Joueur 2 ";
    	}
    	std::cout<<"Entrez la position ou vous souhaitez tirer"<<std::endl;
    	std::cin>>SonTirX>>SonTirY;
    	NumeroBateau=TabJr[SonTirX-1][SonTirY-1];
    	if(TabJr[SonTirX-1][SonTirY-1]<=5 && TabJr[SonTirX-1][SonTirY-1]>0)
    	{
    		std::cout<<"toucher"<<std::endl;
    		TabTir[SonTirX-1][SonTirY-1]='T';
    		std::cout<<"NumeroBateau";
    		std::cout<<NumeroBateau<<std::endl;
    		J.VerifCouler(NumeroBateau,J);
    	}
    	else
    	{
    		std::cout<<"a l'eau"<<std::endl;
    		TabTir[SonTirX-1][SonTirY-1]='E';
    		//Tir();
    	}
    }
     
    void Partie::execute()
    {
    	initialisation();
    	std::cout<<"Joueur1 place bateau"<<std::endl;
    	PlacementBateaux(TabBateauxJ1);
    	affiche("J1");
    	PauseEfface();
    	std::cout<<"Joueur 2 place bateau"<<std::endl;
    	PlacementBateaux(TabBateauxJ2);
    	affiche("J2");
    	PauseEfface();
    	TourDeJeu();
    	std::cout<<std::endl;
    }
    void Partie::PauseEfface()
    {
    	system("pause");       //met en pause en attente d'une touche
    	system("cls");         //efface le contenu de la console
    }
    void Partie::TourDeJeu()
    {
    	//Bonus Bonus1;
    	//Bonus1.tirageBonus();
    	//J1.TestToucherJ1(); Tester es constructeur
    	//J2.TestToucherJ2(); Tester les constructeur
    	Tir(TabBateauxJ2,TabTirJ1,J2);
    	affiche("J1");
    	PauseEfface();
    	//Bonus1.tirageBonus();
    	Tir(TabBateauxJ1,TabTirJ2,J1);
    	affiche("J2");
    	PauseEfface();
    	TourDeJeu();
    }
    Joueurs.hpp
    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
    #include <string>
    #include <iostream>
     
     
    class Joueurs
    {
     
    		int PorteAvion;
    		int Cuirasse;
    		int Torpilleur;
    		int Destroyer;
    	public:
     
    		int TabTirJ1 [25][25];
    		int TabTirJ2 [25][25];
    		Joueurs();
    		void VerifCouler(int,Joueurs);
    		int GetSonTorpilleur();
    		int GetSonPorteAvion();
    		int GetSonDestroyer();
    		int GetSonCuirasse();
    		void SetSonTorpilleur();
    		void SetSonPorteAvion();
    		void SetSonDestroyer();
    		void SetSonCuirasse();
    };
    Joueurs.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
    #include "Joueurs.hpp"
     
     
    Joueurs::Joueurs()
    :PorteAvion(5),Cuirasse(4),Destroyer(3),Torpilleur(2)
    {
    	std::cout<<"PorteAvion créer"<<PorteAvion<<std::endl;
    	std::cout<<"Cuirasse créer"<<Cuirasse<<std::endl;
    	std::cout<<"Destroyer créer"<<Destroyer<<std::endl;
    	std::cout<<"Torpilleur créer"<<Torpilleur<<std::endl;
    }
     
    void Joueurs::VerifCouler(int NumeroBateaux,Joueurs J)
    {
    	//std::cout<<PorteAvion<<Cuirasse<<Destroyer<<Torpilleur;
    	int BateauxToucher;
    	switch(NumeroBateaux)
    	{
    		case 5: J.GetSonPorteAvion();/*J.GetSonPorteAvion();*/break;
    		case 4: /*J.GetSonCuirasse();*/break;
    		case 3: /*J.GetSonDestroyer();*/break;
    		case 2: /*J.GetSonTorpilleur();*/break;
    	}
     
    	if(Torpilleur<=0 || PorteAvion<=0)
    	{
    		std::cout<<"Bateau couler !!!"<<std::endl;
    		if(Torpilleur==0 && Destroyer==0 && Cuirasse==0 && PorteAvion==0)
    		{
    		std::cout<<"Joueurs perd la partie !!!! Game over"<<std::endl;
    		}
    	}
     
    }
     
    int Joueurs::GetSonPorteAvion()
    {
    	 std::cout<<"PorteAvion"<<std::endl; //c'était pour vérifier les valeur avant et apres le Set() mais sa n'affiche rien donc la fonction n'est pas acceder je pence
    	 SetSonPorteAvion();
    	 std::cout<<PorteAvion<<std::endl;
    	return PorteAvion;
    }
     
    void  Joueurs::SetSonPorteAvion()
    {
    	std::cout<<"aaaaaa"<<std::endl;
    	PorteAvion=PorteAvion-1;
    		std::cout<<std::endl;
    }
    Meme fonction Get et Set pour les autre bateau

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    voila mon code si il y a quelque chose que tu ne comprend pas demande moi

  7. #27
    Membre régulier Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 81
    Points
    81
    Par défaut
    Salut,

    Bon tout d'abord, je pense qu'il faudrait que tu revois les notions sur les objets car c'est pas ca...

    Bon sinon.
    Getter et setter ne sont des fonctions qui ne font que retourner une valeur ou la modifier avec une nouvelle valeur.
    Ainsi tu devrait avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int Joueur::getCuirasse() const
    {

  8. #28
    Membre régulier Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 81
    Points
    81
    Par défaut
    Désolé, un soucis de clavier, et le message a été envoyé.
    Bon je reprend:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int Joueur::getCuirasse() const
    {
    return cuirasse;
    }
    void Joueur::setCuirasse(int value)
    {
       cuirasse = value;
    }
    et meme chose pour tes autres setter et getter.

    Ensuite, dans ta fonction verif bateaux, comme tu es dans ton objet Joueur, pas besoin de le passer en parametre, et dans la fonction, la variable correspond automatiquement a la variable membre.

    ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void Joueurs::VerifCouler(int NumeroBateaux)
    {
    	int BateauxToucher;
    	switch(NumeroBateaux)
    	{
    		case 5: porteAvion --;break;
    		case 4: cuirasse --; break;
    		case 3: destroyer--;break;
    		case 2: torpilleur--;break;
    	}
     
    ...
    Cependant, je ne suis pas sur que ce code fonctionne mieux car je n'ai pas bien compris ce que représente NumeroBateaux.

    Voila avec cela tu devrais pouvoir avancer. Cependant, si tu as du temps, essai de revoir ta conception car c'est pas terrible en tant que programmation objet.

    Pour te donner des pistes, l'objet Joueur devrait a mon avis comporter les grilles de ses bateaux et celle de son jeu (2 grilles).
    Ensuite dans ta classe partie, tu appelles successivement
    J1.getNewTir(x1, y1);
    J1.setResultTir(J2.setNewTir(x1, y1));
    J2.getNewTir(x2, Y2);
    J2.setResultTir(J1.setNewTir(x2, y2));

    getNewTir definit la position du nouveau tir d'aprés la grille des tirs, setNewTir verifie la grille de position des bateaux et renvoie si le coup est à l'eau ou touché, setResult conserve le resultat du tir dans la grille des coups du joueur.

    Voilà quelques infos qui pourront certainement t'aider.

    Dernière remarques comme le dit lun4t1k, il serait bon de faire attention à ceux que tu écris car ce n'est pas évident de te lire . Meme si l'orthographe n'est pas mon fort, j'essaie tout de meme d'ecrire le plus lisiblement possible.

  9. #29
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    ok merci en effet cela peu m'aider et j'ai aussi du mal avec les objet comme tu la dit ... Je comprend ce que tu veut dire mais je voit pas comment on peu déclarer les tableau dans le constructeur si c'est bien cela que tu voulais dire, j'avait deja essayer sa mais sa marche pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Joueurs::Joueur(std::string J)
    ::PorteAvion(5),Cuirasse(4),Destroyer(3),Torpilleur(2)
    {
             int TabBateau+'J'[25][25]
    }
    POur en faite créer automatiquement le tableau du joueurs ce qui me permettrai en effet d'utiliser mon tableau.

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    j'ai rien dit boulet

  11. #31
    Membre régulier Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 81
    Points
    81
    Par défaut
    Salut,

    Bon bien que pas demandé voici encore quelques pistes:
    C'est pour revenir à l'objet.

    Maintenant que tes grilles font bien partie de l'objet Joueur,

    Tu peux supprimer de l'objet Partie la methode innitialise qui se retrouve dans le contructeur de Joueur et plaement bateau et affiche sont aussi des methode de Joueur.

    Avec tout cela, tu devrais t'en sortir.


  12. #32
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    oui tinkiète j'y avait deja pencer merci de ton aide en tout cas !!!

  13. #33
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    A si un dernier petit soucis que j'aimerai éclairer, en faite quand je réalise sa:il me dit que ma fonction ne peut pas prendre J1 car J1 est de ma classe Joueurs et affiche de ma classe Partie.
    L'erreur générer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    1>e:\Partie.cpp(165) : error C2039: 'affiche'*: n'est pas membre de 'Joueurs'
    1>        e:\Joueurs.hpp(6)*: voir la déclaration de 'Joueurs'
    Mais il va donc falloir que je mettent toute mes fonction dans ma classe Joueurs si je veut utiliser mes J1 et J2 ...

    Or ma analyse ne prévoit pas sa et sa parait plus logique de mettre mes fonction PlacementBateaux et affiche dans Partie non ???

    Il doit surment y avoir un moyen mais je ne voit pas lequel ...

    Si vous savez pouvez-vous me dire merci, en attendant bas je tout mettre dans joueurs

  14. #34
    Membre régulier Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 81
    Points
    81
    Par défaut
    Il faudrait effectivment mieux que affiche soit dans Joueur.
    Si tu veux utilisé une instruction du style J1. il faut que ce qui est derriere le '.' soit un membre de la classe Joueur.

    Juste pour ton probleme et en te mettant en garde car en terme de conception c'est pas terrible, tu peux faire dans partie: Affiche(J1);

    a ce moment tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    partie::Affiche (Joueur J)
    {
       magrille = J.GetGrille();
       for (uint i...)
          for (uint j ...)
             cout << ...
     
    }
    Voilà qui peut peut être te donner un coup de pouce.

  15. #35
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    D'accord merci je vais voir sa, merci encore de ton aide

  16. #36
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    bon c'est remoi j'ai pratiquement fini cependant il me reste un petit soucis et pas des moindre.

    Voila en faite mon projet inclus des bonus (tir multiple...) et la j'ai un probleme je lance ma fonction j'entre les différent position pour les tirs je met J.affiche tout s'affiche correctement je voit bien ou les tir on été lancer et quelle sont leur résultats mais des que je quitte la fonction je ne voit plus les tire réaliser c'est comme si je n'était jamais passer dans la fonction ...

    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
    void Bonus::TirMulti(int TirBonus,Joueurs J,Joueurs Jadv)
    {
    	int SonTirX;
    	int SonTirY;
    	while(TirBonus>=0)
    	{
    		std::cout<<"entrez la position ou vous souhaitez tirer (entre 1 et 25)"<<std::endl;
    		std::cin>>SonTirX>>SonTirY;
    		J.SetResultTir(SonTirX,SonTirY,Jadv.SetNewTir(SonTirX,SonTirY));
    		J.VerifCouler(SonTirX,SonTirY);
    		TirBonus=TirBonus-1;
     
    	}
                 J.affiche(); // ici mon affichage fonctionne correctement
    }
    ma fonction SetNewTir(SonTirX,SonTirY) retourne si le bateau est toucher ou non et renvoie T ou E vers la fonction SetResultTir et ma fonction SetResultTir(int,int,char) me place le char retourner par la fonction SetNewTir dans mon tableau de jeu

  17. #37
    Membre régulier Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 81
    Points
    81
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void Bonus::TirMulti(int TirBonus,Joueurs& J,Joueurs& Jadv)
    ca sera surement mieux.

  18. #38
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    euh non sa ne change rien sa ne m'affiche pas.

    Dans la fonction l'affichage est correcte mais des que je sort les chiffres que j'ai insérer dans mon tableau disparaisse ...

  19. #39
    Membre régulier Avatar de fdubks
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 81
    Points
    81
    Par défaut
    Est ce que tu appelles affiche juste en sortant de tirmulti ?

    Peux tu me montrer cette partie du code appel a tirmulti jusqu'à affiche à l'exterieur ?

  20. #40
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 73
    Points : 21
    Points
    21
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Bonus1.tirageBonus(GetJoueurs(GetCompteur()),GetJoueurs(GetCompteur()+1));			//Tirage au sort d'un bonus
    	J1.affiche();
    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
    void Bonus::tirageBonus(Joueurs & J,Joueurs & Jadv)
    {
    	srand(time(NULL));
    	ranD=rand()%10;
    	std::cout<<"le chifre est"<<ranD<<std::endl;
    	switch(/*ranD*/2)
    	{
    	case 1:std::cout<<"Aucun Bonus"<<std::endl;AucunBonus();break;
    		case 2:std::cout<<"Tir multiple"<<std::endl;TirMulti(4,J,Jadv);break;
    		case 3:std::cout<<"Leurres"<<std::endl;Leurres(J);break;
    		case 4:std::cout<<"PasseTour"<<std::endl;PasseTour(J);break;
    		case 5:std::cout<<"TourPerdu"<<std::endl;TourPerdu(J);break;
    		case 6:std::cout<<"Devoilement<<std::endl";Devoilement(J);break;
    		case 7:std::cout<<"Radar"<<std::endl;Radar(Jadv);break;
    		default:std::cout<<"Aucun Bonus"<<std::endl;AucunBonus();break;
    	}
    }
    ici j'appelle donc ma fonction TirageBonus qui doit me générer un nombre aléatoire et me renvoie vers une fonction. Et donc si je vais vers TirMulti ou Leurres l'affichage ce réalise correctement dans la fonction mais des qu eje sort sa n'affiche plus rien

Discussions similaires

  1. Message d'erreur pas très explicite-- help SVP!
    Par vonemya dans le forum C++
    Réponses: 3
    Dernier message: 28/08/2007, 14h05
  2. mon CV je marque ou pas?help svp
    Par lisalisaaa dans le forum CV
    Réponses: 3
    Dernier message: 27/07/2007, 13h38
  3. Impossible restaurer DUMP HELP SVP
    Par globule2 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 12/02/2007, 09h11
  4. recuperation données help svp
    Par max_killer93 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/01/2007, 14h51
  5. Tableaux, boucles help SvP
    Par 3xplo dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 08/11/2006, 17h23

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