[LCP] projet Zone d'initalisation

Page 2 sur 2 Précédent  1, 2

Voir le sujet précédent Voir le sujet suivant Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  neciO le Mar 20 Déc 2011, 17:28

bigmax a écrit:

Soit ton constructeur lance une exception
Soit tu t'arranges pour créer ton Plateau une fois que tu es sur d'avoir obtenu un nombre ligne et colonne valide..

C'est que j'avais fait, en fait je voulais juste utiliser des setters pour le nombre de rangées et de colonnes, et faire la vérification la, mais bon je m'en passerai :p

neciO

Nombre de messages : 28
Age : 28
Prénom : Juan Carlos
Statut : Etudiant 2e Réseaux
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  bigmax le Mar 20 Déc 2011, 17:50


C'est que j'avais fait, en fait je voulais juste utiliser des setters pour le nombre de rangées et de colonnes, et faire la vérification la, mais bon je m'en passerai :p
Ça serait dommage que ton prof entre 4-13 et que ton programme plante..

De plus je comprends pas pourquoi tu as besoin de setters ici Neutral
Suffit de demander à l'utilisateur le nombre de ligne tant qu'il ne rentre pas une valeur valide, puis pareil pour le nombre de colonne.

Code:
int ligne;
      int colonne;
      string message;
      do{
         message = "Nombre de lignes [4-12] :\n";
         saisirInt(ligne,message);
      }while(ligne < 4 || ligne >12 || ligne%2!=0);
      
      do{
         message = "Nombre de colonnes [4-12] :\n";
         saisirInt(colonne,message);
      }while(colonne < 4 || colonne >12 || colonne%2!=0);
      this->tabOthello = Plateau(ligne,colonne);

Pour rappel saisirInt -> saisie sécurisée

bigmax

Nombre de messages : 132
Age : 27
Prénom : Gilles
Statut : 3ème Réseaux
Date d'inscription : 17/11/2007

Revenir en haut Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  neciO le Mar 20 Déc 2011, 18:14

bigmax a écrit:

C'est que j'avais fait, en fait je voulais juste utiliser des setters pour le nombre de rangées et de colonnes, et faire la vérification la, mais bon je m'en passerai :p
Ça serait dommage que ton prof entre 4-13 et que ton programme plante..

De plus je comprends pas pourquoi tu as besoin de setters ici Neutral
Suffit de demander à l'utilisateur le nombre de ligne tant qu'il ne rentre pas une valeur valide, puis pareil pour le nombre de colonne.

Code:
int ligne;
      int colonne;
      string message;
      do{
         message = "Nombre de lignes [4-12] :\n";
         saisirInt(ligne,message);
      }while(ligne < 4 || ligne >12 || ligne%2!=0);
      
      do{
         message = "Nombre de colonnes [4-12] :\n";
         saisirInt(colonne,message);
      }while(colonne < 4 || colonne >12 || colonne%2!=0);
      this->tabOthello = Plateau(ligne,colonne);

Pour rappel saisirInt -> saisie sécurisée

en fait je m'exprime mal, j'ai une saisie sécurisé avant que je lance le constructeur. Mon jeu tourne bien au niveau des entrées etc, je me demandais surtout s'il était possible d’amélioré ça.

L'histoire des setters c’était plus dans une optique, si par exemple on partage la classe, vérifier que la personne qui utilise le constructeur entre bien des chiffres entre 4 et 12. Fin je sais pas si je suis très clair, mais c'est pas très grave :p

neciO

Nombre de messages : 28
Age : 28
Prénom : Juan Carlos
Statut : Etudiant 2e Réseaux
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  karemkadidola le Mar 20 Déc 2011, 19:26

Les amis j'ai vu un saisi Int securisée c'est qui est une très bonne chose..y a pas un saisi char securisée qui trainerait quelque part dans les parages..j'ai essayé de bidouiller de plusieurs façon jusque là ça marche pas 100% nickel

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  galaeron le Mar 20 Déc 2011, 20:26

Il faut lire TOUT le tutorial du site du zero.

galaeron

Nombre de messages : 113
Age : 28
Prénom : Arthur
Statut : 3IR12
Date d'inscription : 29/06/2011

Revenir en haut Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  neciO le Mar 20 Déc 2011, 20:39

galaeron a écrit:Il faut lire TOUT le tutorial du site du zero.

Ou alors lire le fichier source que monsieur nvs a mis a disposition Smile

neciO

Nombre de messages : 28
Age : 28
Prénom : Juan Carlos
Statut : Etudiant 2e Réseaux
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  karemkadidola le Mar 20 Déc 2011, 20:48

j'ai lu tout le tuto..lol

karemkadidola

Nombre de messages : 244
Prénom : aimé
Date d'inscription : 13/10/2009

Revenir en haut Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  nvs le Mar 20 Déc 2011, 22:50

neciO a écrit:[...] comment faire pour accédé aux case [...] par :
Code:
this->getOthellier()->at(rangee)->at(colonne);
il faut, mais c'est totalement malsain, que getOthelier() retourne un vector<vector<T> *> * où T est le type de getOthellier()->at(rangee)->at(colonne)...





cyclops

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  nvs le Mar 20 Déc 2011, 22:59

neciO a écrit:
nvs a écrit:quelle mauvaise idée cet attribut dynamique...
Neutral

En fait j'ai fait ça afin de contrôler que le nombre de colonnes et de rangées sont bien compris entre 4 et 12, mais si vous avez un autre conseil, je suis vraiment preneur Smile
quelque chose du genre :
Code:
Brol::Brol(unsigned valeur) : attribut(valide(valeur))
{ }

unsigned Brol::valide(unsigned v)
{
    if (v < vMin || v > vMax) v = vDefaut;  // ou une exception pourrait être levée
    return v;
}







@

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  neciO le Mar 20 Déc 2011, 23:30

nvs a écrit:
neciO a écrit:
nvs a écrit:quelle mauvaise idée cet attribut dynamique...
Neutral

En fait j'ai fait ça afin de contrôler que le nombre de colonnes et de rangées sont bien compris entre 4 et 12, mais si vous avez un autre conseil, je suis vraiment preneur Smile
quelque chose du genre :
Code:
Brol::Brol(unsigned valeur) : attribut(valide(valeur))
{ }

unsigned Brol::valide(unsigned v)
{
    if (v < vMin || v > vMax) v = vDefaut;  // ou une exception pourrait être levée
    return v;
}
@

Un grand merci à vous Smile

neciO

Nombre de messages : 28
Age : 28
Prénom : Juan Carlos
Statut : Etudiant 2e Réseaux
Date d'inscription : 19/10/2010

Revenir en haut Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  nvs le Mer 21 Déc 2011, 09:45

neciO a écrit:
nvs a écrit:
neciO a écrit:
nvs a écrit:quelle mauvaise idée cet attribut dynamique...
Neutral

En fait j'ai fait ça afin de contrôler que le nombre de colonnes et de rangées sont bien compris entre 4 et 12, mais si vous avez un autre conseil, je suis vraiment preneur Smile
quelque chose du genre :
Code:
Brol::Brol(unsigned valeur) : attribut(valide(valeur))
{ }

unsigned Brol::valide(unsigned v)
{
    if (v < vMin || v > vMax) v = vDefaut;  // ou une exception pourrait être levée
    return v;
}
@

Un grand merci à vous Smile
où valide est une méthode privée, évidemment Smile






cyclops

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  M. Pixel le Mer 21 Déc 2011, 17:22

nvs a écrit:tu es un peu excessif, M. Pixel.

Sans pointeur, compile :
Code:
class A
{
public:
    A(void);
private:
    vector<int> tab;
};

A::A(void)
{
    tab = vector<int>(5);
}

c'est assez laid comparé à la liste d'initialisation, mais ça marche.
En effet, mais je pense que ce code n'est pas recommandable? À ma connaissance, on construit un objet temporaire, et lors de l'assignation à tab, on effectue une copie de cet objet temporaire et de tous les éléments (l'opérateur '=' de vector<> étant surchargé).


Avec un pointeur, compile:
Code:
class A
{
public:
    A(void);
    virtual ~A();
private:
    vector<int> * tab;
};

A::A(void) : tab(new vector<int>(5))
{ }

A::~A()
{
    delete tab;
}
bounce
Ahh exactement, je n'avais pas pensé à ce cas, merci pour la précision. Smile
À titre personnel, je préfère éviter la liste d'initialisation quand je peux, simplement parce que je la trouve moins clair, mais c'est mon opinion, et parfois je n'ai pas le choix. :-)

M. Pixel

Nombre de messages : 19
Prénom : Etienne
Localisation : 0x7C00
Date d'inscription : 15/12/2010

Revenir en haut Aller en bas

Re: [LCP] projet Zone d'initalisation

Message  Contenu sponsorisé Aujourd'hui à 12:33


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 2 Précédent  1, 2

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum