===== genJardin.cpp et son testeur ===== [[project_track| retour à project track]] #include #include #include #define MAXOBJECTS 50 #include #include using namespace std; std::vector > genJardin (int combien, int largJardin, int hautJardin, int coteObjet) { int compte=0, i,x,y, x1, x2, y1, y2; int largeur; int hauteur; int resteCote; bool auquai = true; std::vector > scenario(combien,std::vector(2)); // int scenario [MAXOBJECTS][2]; cout << "les valeurs sont combien: " << combien <<", largJardin: "<MAXOBJECTS) { cout<largeur)|(coteObjet>hauteur)){cout<<"Objets trop grand pour ce terrain!" << endl; combien=0;} if ((coteObjet*coteObjet*combien)>(hauteur*largeur*2)){ combien = (hauteur*largeur*2)/(coteObjet*coteObjet); cout<<"Potentiellement trop d'objets pour placer facilement, objectif r�duit � " << combien << endl; } /* initialize random seed: */ srand ( time(NULL) ); /* generate secret number: */ while (comptelargeur)|(y+resteCote>hauteur))auquai=false; /* * voir si point est dans un carr� d�j� r�serv� * 1 cas : (x,y) est dans le carr� * 2 cas : (x+resteCote, y) est dans le carr� * 3 cas : (x,y+resteCote) est dans le carr� * dernier cas : (x+resteCote, y+resteCote) -- le coin oppos�-- est dans le carr� */ for (i=0;auquai&(i=x1) & (x <=x2) & (y>=y1) & (y<=y2)) auquai=false; if (auquai & (x+resteCote>=x1) & (x+resteCote <=x2) & (y>=y1) &( y <= y2)) auquai=false; if (auquai & (x>=x1) & (x <=x2) & (y+resteCote >= y1) &(y+resteCote <= y2)) auquai=false; if (auquai & (x+resteCote>=x1) & (x+resteCote <=x2) & (y+resteCote >= y1) & (y+resteCote <= y2)) auquai=false; } // next i if (auquai) { scenario[compte][0]=x; scenario[compte][1]=y; compte++; cout<<"objet "< > coins; int i; cout<<"combien d'objets sont a placer?"<> combien; cout <<"\n combien mesure le cote d'un objet?" <> coteObjet; cout << "\n Quelle est la largeur du terrain?"<> largJardin; cout <<"\n Et enfin, quelle est la hauteur du terrain?"<> hautJardin; coins = genJardin(combien, largJardin, hautJardin, coteObjet); for (i=0;i