User:Apoz2/sandbox


 * 1) include "Appli.h"
 * 2) include "Actions.h"

string chercherSynonymes(string s, int nb);

int main {   srand (time(NULL)); Appli app;

//initEcran;

/*app.chargerCouleurs;

init_color(15,650,1000,1000); init_pair(15,15,3); init_pair(16,7,3);

attron(COLOR_PAIR(16)); mvafficheChaine(0,0,"                                           Alea's Quest                                            "); mvafficheChaine(1,0,"                                                                                                   "); mvafficheChaine(1,80,"Temps : "); attroff(COLOR_PAIR(16));

attron(COLOR_PAIR(15)); afficheChaine("Matin"); attroff(COLOR_PAIR(15));

mvaddch(3,0,'\n');

refresh;

wsetscrreg(stdscr,3,42);*/

//app.afficherCouleurs; app.chargerMateriaux; app.genererCarte;

Actions act;

Perso* p = new Perso; p->getContenant(0)->lectureFichier("Data/Objects/Containers.txt","SAO0000"); p->getContenant(0)->setMateriau(app.trouverMateriau(p->getContenant(0)->getNomTypeMat, p->getContenant(0)->getNomMateriau));

Salle* s;   int numGrille = 0; int x = app.getGrille(numGrille)->getPosDepX; int y = app.getGrille(numGrille)->getPosDepY; //int heure = 10; //int debut = clock;

//app.getGrille(numGrille)->afficherGrille; //app.getGrille(numGrille)->afficherGrillePassages;

while (1) { s = app.getGrille(numGrille)->getSalle(x,y); //app.getGrille(0)->setPosDepX(x); // faudra penser a differencier la pos de depart et la pos du joueur actuelle, la ca fait caca //app.getGrille(0)->setPosDepY(y); if (s->getDejaVisite == false) { s->setDejaVisite(true); if (s->getNbObj != 0) { s->genererObjets; for (int i=0; igetNbObj; i++) {                   if (s->getObjet(i)->getBoolUnique) { ObjetUnique* obj = (ObjetUnique*)s->getObjet(i); obj->setMateriau(app.trouverMateriau(obj->getNomTypeMat, obj->getNomMateriau)); }                   else { Assemblage* obj = (Assemblage*)s->getObjet(i); for (int i=0; igetNbComposants; i++) obj->getComposant(i)->setMateriau(app.trouverMateriau(obj->getComposant(i)->getNomTypeMat, obj->getComposant(i)->getNomMateriau)); }               }            }        }

act.ExaminerAlentours(&app,s,numGrille);

do { sautLigne; sautLigne; afficheChaine("Votre action : ");

/*if (clock-360000 >= debut) { heure++; if (heure == 11) { int postmpY; int postmpX; getyx(stdscr, postmpY, postmpX);

init_color(15,650,1000,1000);

attron(COLOR_PAIR(15)); mvafficheChaine(1,88,"Midi "); attroff(COLOR_PAIR(15));

mvafficheCar(postmpY,postmpX-1,' ');

refresh; }               debut = clock; }*/

string rep = getReponse; sautLigne;

string repFin; vector motsRep;

if (rep[0] != '/') { int i = 0; int j = rep.find(' '); while (j!=(int)string::npos) { motsRep.push_back(rep.substr(i,j-i)); i = j+1; rep[j] = '_'; j = rep.find(' '); }               motsRep.push_back(rep.substr(i));

i = (int)motsRep.size; do { string str = motsRep[0]; for (int j=1; jgetBloques.find('e') == string::npos) x++; else afficheChaine("Vous ne pouvez pas aller dans cette direction."); }           else if (repFin == "sud") { if (s->getBloques.find('s') == string::npos) y++; else afficheChaine("Vous ne pouvez pas aller dans cette direction."); }           else if (repFin == "ouest") { if (s->getBloques.find('o') == string::npos) x--; else afficheChaine("Vous ne pouvez pas aller dans cette direction."); }           else if (repFin == "nord") { if (s->getBloques.find('n') == string::npos) y--; else afficheChaine("Vous ne pouvez pas aller dans cette direction."); }           else if (repFin == "inventaire") act.AfficherInventaire(p); else if (repFin == "examiner") act.ExaminerAlentours(&app,s,numGrille); else if (repFin == "prendre") { if ((int)motsRep.size == 2) act.PrendreDeuxMots(motsRep[1],s,p); else if ((int)motsRep.size > 2) act.PrendrePlusieursMots(motsRep,s,p); else afficheChaine("Prendre quoi ? Ce serait pas mal si vous finissiez vos phrases, vous savez."); }           else if (repFin == "prendre tous") { act.PrendreTous(s,p); }           else if (repFin == "laisser") { if (p->getNombreObjets != 0) { if ((int)motsRep.size == 2) act.LaisserDeuxMots(motsRep[1],s,p); else if ((int)motsRep.size > 2) act.LaisserPlusieursMots(motsRep,s,p); else afficheChaine("Laisser quoi ? Ce serait pas mal si vous finissiez vos phrases, vous savez."); }               else afficheChaine("Votre inventaire est vide."); }           else if (repFin == "/GRILLE") app.afficherCarte; else if (repFin == "/ENTRER") { if (s->getBoolPOI && s->getPOI->getNumGrille > -1) numGrille = s->getPOI->getNumGrille; x = app.getGrille(numGrille)->getPosDepX; y = app.getGrille(numGrille)->getPosDepY; }           else if (repFin.substr(0,8) == "/DEFAIRE") { string idObjet = repFin.substr(9);

int i = 0; int j = 0; while (i != p->getTailleInventaire && p->getContenant(i)->getObjet(j)->getID != idObjet) { j++; if (j == p->getContenant(i)->getNombreObjets) { j = 0; i++; }               }                if (i != p->getTailleInventaire) { Assemblage* ass = (Assemblage*)p->getContenant(i)->getObjet(j); for (int k=0; kgetNbComposants; k++) p->prendreObjet(ass->getComposant(k)); p->laisserObjet(i,j); delete ass; }               else afficheChaine("Il n'y aucun objet de cet id dans votre inventaire."); }           else if (repFin.substr(0,8) == "/REFAIRE") { string idObjet = repFin.substr(9);

Assemblage* ass = new Assemblage; //ass->Objet::lectureFichier ass->setID(idObjet);

for (int i=0; igetTailleInventaire; i++) { Contenant* c = p->getContenant(i); for (int j=0; jgetNombreObjets; j++) {cout << p->getContenant(i)->getObjet(j)->getID.substr(3) << " " << idObjet; if (p->getContenant(i)->getObjet(j)->getID.substr(3) == idObjet) { ass->ajoutComposant((ObjetUnique*)p->getContenant(i)->getObjet(j)); p->laisserObjet(i,j); }                   }                }                if (ass->getNbComposants != 0) p->prendreObjet(ass); }       } while (s == app.getGrille(numGrille)->getSalle(x,y)); }

//finEcran;

return 0; }

string chercherSynonymes(string motTape, int nb) { string motFinal = "inconnu";

ifstream f;   f.open("Data/Synonyms.txt", ios::in); if(f) { do { string s,mot; do { getline(f,s); }           while (!f.eof && s.substr(0,13) != "SYNONYMS_FOR:");

if (s.substr(0,13) == "SYNONYMS_FOR:") { mot = s.substr(13); if (mot != motTape) { do                       getline(f,s); while (!f.eof && s != "" && ((int)s[0]-48) < nb);

if (((int)s[0]-48) == nb) { string listeSyn; listeSyn = s.substr(7); int i = 0; for (int j=0; j<=(int)listeSyn.size; j++) { if (j == (int)listeSyn.size || listeSyn[j] == ',') { if (listeSyn.substr(i,j-i) == motTape) motFinal = mot; i=j+1; }                       }                        getline(f,s); }               }                else motFinal = mot; }       } while (!f.eof && motFinal == "inconnu");

f.close; }   else cerr << "Impossible d'ouvrir le ficher Synonyms.txt dans le repertoire Data !" << endl;

return motFinal; }