Référence du fichier /tmp/galet/src/regle3.cpp

contient la règle 3 Plus de détails...

#include "regles.h"

Graphe des dépendances par inclusion de regle3.cpp:

Aller au code source de ce fichier.

Fonctions

res_regle regle_3 (const entier_type &N, GRAPHE &G)
 On teste la regle n°3 (ajout d'un galet).


Description détaillée

contient la règle 3

Auteur:
Brice Boyer
Date:
17 juillet 2008

Définition dans le fichier regle3.cpp.


Documentation des fonctions

res_regle regle_3 ( const entier_type N,
GRAPHE G 
)

On teste la regle n°3 (ajout d'un galet).

On peut toujours rajouter un galet. Oui, mais sauf si :

  • la variable n'est pas libre (!)
  • il n'y a pas assez de parents galéisés pour faire une opération (inutile de dépenser un galet)
  • l'opération risque de modifier un galet père non modifiable ou qui a un fils non calculé.

On se sert de GRAPHE::on_essaie_de_galeiser. Une fois qu'on galéise, on ne sait pas ce qui a été calculé. Il faut demander à la regle_1. Le but de cette règle est de rajouter un galet pour donner de l'air, pas de faire des opérations ! On met le graphe à jour.

À faire:
TODO ceci n'est pas implémenté.

Définition à la ligne 46 du fichier regle3.cpp.

Références _debog, _DEBUG1, _DEBUG2, _resul, cinfo, GRAPHE::nom_de(), et GRAPHE::on_essaie_de_galeiser().

Référencé par DebloqueSituation().

00046                                                         { /*{{{*/
00047    cinfo(_DEBUG2,true,3,_debog) << "regle_3 : Règle 3 en " << G.nom_de ( N ) << " :\n";
00048 
00049    res_regle fait = G.on_essaie_de_galeiser ( N );               // on essaie de voir si on a pu galéiser
00050 
00051    //ctrace(_DEBUG2,fait.first,G);
00052 
00053    cinfo(_DEBUG1,fait.first,3,_resul)  << "regle_3 : noeud "     << G.nom_de ( N ) << " galet posé.\n";
00054    cinfo(_DEBUG2,!fait.first,3,_resul) << "regle_3 : au noeud "  << G.nom_de ( N ) << " non appliquée.\n";
00055    return ( fait );                                      // et on renvoie la réponse.
00056 } /*}}}*/

Voici le graphe d'appel pour cette fonction :