Accueil.Ecriture.Images.Programmes.Animations.Contact.

 

Le site !
Dr. Grr.
Licence

/****************************************************************/
/* Conte pour enfant                                            */

/* vers 1.0                                                     */
/* Adapté de Ch. Perrault   (1628-1703)                         */
/*                                                              */
/****************************************************************/

#include <time.h>
#include "moralité.h"
#include "préchi-précha.h"

#define NB_CHASSEURS 10
#define TEMPS_MIS_PAR_LE_LOUP 0.01 // en sec. sous Windows

class Grand_Mère;
class Mère : public Grand_Mère;

/* Le Chaperon Rouge */
class Chaperon_Rouge : public Mère
{
friend Grand_Mère;

friend Chasseur;
public :
Chaperon_rouge ();
~Chaperon_Rouge ();
void musarder (clock_ t &);
void toquer_à_la_porte () {};
void Que_vous_avez_de_grands_bras ();
void Que_vous_avez_de_longues_jambes ();
void Que_vous_avez_de_grandes_oreilles ();
void Que_vous_avez_de_grands_yeux ();
void Que_vous_avez_de_grandes_dents ();
void livre_petit_pot_de_beurre_et_galette ();
private :
Beurre Petit_Pot;  
Galette;
};

// Constructeur
Chaperon_rouge::Chaperon_Rouge ()
{
Il _était_une_fois_une_petite_fille_de_Village ();
Sa_mère_lui_fit_un_petit_chaperon_rouge ();
Petit_Pot = plein_de_beurre;
Galette = y_a_bon ;
}

// Destructeur
Chaperon_Rouge::~Chaperon_Rouge ()
{
Finis_dans_le_ventre_du_Loup ();
}

void Chaperon_rouge::musarder (clock_ t &time_chaperon_rouge)
{

try
{
 
while {
 s_amuser_à_cueillir_des_noisettes_à_courir_après_des_papillons_et

  _à_faire_des_bouquets()==true)
 {

  
continue;
 }
}
// elle en a marre, a fini
catch (...)
{

 
// temps = random valeur au hasard entre 0. et 1. (en sec)
 time_chaperon_rouge = (clock_t) ((double) rand () / (double) (RAND_MAX+1));
}
}

void Chaperon_rouge::Que_vous_avez_de_grands_bras ()
{
C_Est_Pour_mieux_T_Embrasser_Ma_Fille ();
}

void Chaperon_rouge::Que_vous_avez_de_longues_jambes ()
{
C_Est_Pour_Mieux_Courir_Mon_Enfant ();
}

void Chaperon_rouge::Que_vous_avez_de_grandes_oreilles ()
{
C_Est_Pour_Mieux_Ecouter_Mon_Enfant ();
}

void Chaperon_rouge::Que_vous_avez_de_grands_yeux ()
{
C_Est_Pour_Mieux_Te_Voir_Mon_Enfant ();
}

void Chaperon_rouge::Que_vous_avez_de_grandes_dents ()
{
Loup::C_Est_Pour_Mieux_Te_Manger ();
}

void Chaperon_rouge::livre_petit_pot_de_beurre_et_galette ()
{
Grand_Mère::Set_Livrée_A_Domicile ();
}

/* Le Loup */
class Loup
{
public :
Loup ();
~Loup ();
void Indiquer_Raccourci ();
clock_t cavaler ();
void toquer_à_la_porte () {};
void set_Mangé_Grand_Mère (bool mangé);
void C_Est_Pour_Mieux_Te_Manger ();
private :
bool A_Mangé_Chaperon-Rouge, A_Mangé_Grand_Mère;
long dents;
};

// Constructeur
Loup::Loup ()
{
A_Mangé_Chaperon_Rouge =
false;
A_Mangé_Grand_Mère =
false;
}

// Destructeur
Loup::~Loup ()
{
Tué_Par_Les_Chasseurs () ;
}

void Loup::Indiquer_Raccourci ()
{
Prend_Ce_Chemin-Ci ();
Je_Prend_Ce_Chemin_Là ();
}

clock_t Loup::cavaler ()
{
return TEMPS_MIS_PAR_LE_LOUP;
}

void Loup::set_Mangé_Grand_Mère (bool mangé)
{
A_Mangé_Grand_Mère = mangé;
}

void Loup::C_est_pour_mieux_te_manger ()
{
A_Mangé_Chaperon_Rouge =
true;
}

/* La grand mère */
class Arrière_Grand_Père;
class Arrière_Grand_Mère;

class Grand_Mère:public Arrière_Grand_Mère, Arrière_Grand_Père
{
friend Chaperon_Rouge;
public :
Grand_Mère ();
~Grand_Mère ();
void Tire_La_Chevillette ();
void Set_Livrée_A_Domicile ();
private :
Beurre Petit_Pot;
Galette;
};

// Constructeur
Grand_Mère::Grand_Mère ()
{
Petit_Pot = Galette = que_dalle;
}

// Destructeur
Grand_Mère::~GrandMère ()
{
Finis_dans_le_ventre_du_loup () ;
}

void Grand_Mère::Tire_La_Chevillette ()
{
Bobinette_Cherra ();
}

void Grand_Mère::Set_Livrée_A_Domicile ()
{
Galette = Petit_Pot = y_a_bon;
}

/* Les chasseurs */
class Chasseur {
public :
void Tuer_Le_Loup ();
void Sortir_Ventre_Du_Loup_Grand_Mére_Et_Chaperon_Rouge ();
private :
fusil, couteau;
};

void Chasseur::Tuer_Le_Loup ()
{
Utiliser (fusil) ;
}

void Chasseur:: Sortir_Ventre_Du_Loup_Grand_Mère_Et_Chaperon_Rouge ()
{
Utiliser (couteau) ;
}

// Programme principal
void main ()
{
Chaperon_Rouge *petit_chaperon_rouge ;
Grand_Mère *mère_grand ;
Loup *le_loup ;
Chasseur *les_chasseurs;
clock_t time_chaperon_rouge;

 /* Instanciation des personnages*/

 petit_chaperon_rouge = new Chaperon_Rouge;
mère_grand =
new Grand_Mère;
le_loup =
new Loup;
les_chasseurs =
new Chasseur [NB_CHASSEURS];

 /* Début de l’histoire */

 petit_chaperon_rouge->cheminer_forêt ();
loup->indiquer_raccourci ();
clock_t time_ loup = loup->cavaler () ;

 /* Noeud */
petit_chaperon_rouge->musarder (time_chaperon_rouge);

 /* test */
if (time_loup<time_chaperon_rouge)
{
 loup-> toquer_à_la_porte ();
 grand_mère-> Tire_La_Chevillette ();
 loup->set_ Mangé_Grand_Mère (true);
 
delete grand_mère;
 petit_chaperon_rouge-> toquer_à_la_porte ();
 loup-> Tire_La_Chevillette ();
 petit_chaperon_rouge-> Que_vous_avez_de_grands_bras ();
 petit_chaperon_rouge->Que_vous_avez_de_longues_jambes ();
 petit_chaperon_rouge-> Que_vous_avez_de_grandes_oreilles ();
 petit_chaperon_rouge-> Que_vous_avez_de_grands_yeux ();
 petit_chaperon_rouge-> Que_vous_avez_de_grandes_dents ();
 loup->C_est-pour_mieux_te_manger ();
 
delete petit_chaperon_rouge;

  // dénouement 1
 // adapté de Grimm (Brothers and Co)

 
for (int i=0 ;i<Nb_Chasseur ; i++)
  Chasseur->Tuer_Le_Loup ();
 
delete loup;
 Chasseur[0]->Sortir_Ventre_Du_Loup_Grand_Mére_Et_Chaperon_Rouge ();
 petit_chaperon_rouge =
new Chaperon_Rouge;
 grand_mère =
new Grand_mère;
 moralité =
new moralité;
 moralité->Ne_Pas_Suivre_Un_Inconnu_Quand_On_Est_Une_Jeune_Fille_Innocente () ;
}
else
{
 
// dénouement 2
 // le chaperon rouge est arrivé avant le loup

 chaperon->livre_petit_pot_de_beurre_et_galette ();
 préchi-précha=
new préchi-précha;
 préchi-précha->Ne_Pas_toujours_Se_Croire_Chancheuse ();

  // happy end
 
delete loup ; // pour éviter une fuite mémoire
}

 // Fin : destruction des personnages
delete [] chasseurs;
delete petit_chaperon_rouge;
delete grand_mère;
delete moralité;
}

 

Retour
Conceptuel