#include #include #include using namespace std; int main() { const int NB_VIES_MAX =3; const int CHUTE_MORTELLE = 3; int TAILLE = 300; int platesformes[TAILLE]; int posMario = 0; int plusGrandeChute = 0; int plusGrandeAscension = 0; int plusHautePlateforme = 0; int iPlusHautePlateforme = 0; int nbViesUtilisees = 0; int i; int iProchainTunnel; // Generation des plates-formes srand(time(0)); platesformes[0] = 0; for (i = 1; i < TAILLE-1; i++) { platesformes[i] = rand()%11; } platesformes[TAILLE-1] = rand()%10; // Mario va jouer do { // Mario tombe sur un tunnel if (platesformes[posMario+1] == 10) { iProchainTunnel = posMario+1; do { iProchainTunnel++; } while(!((platesformes[iProchainTunnel]==10)||(iProchainTunnel==TAILLE-1))); // s'il y a un prochain tunnel, Mario y va et il avancera tout seul après if (iProchainTunnel != TAILLE-1) posMario = iProchainTunnel; // s'il n'y en a pas il avancera tout seul juste avant la fin du do/while } else { // Mario va monter if (platesformes[posMario]plusGrandeAscension) plusGrandeAscension = platesformes[posMario+1]-platesformes[posMario]; // C'est le planté de batons ... non drapeau ! if (platesformes[posMario+1] > plusHautePlateforme) { iPlusHautePlateforme = posMario + 1; plusHautePlateforme = platesformes[iPlusHautePlateforme]; } } else { // Mario va descendre ! Attention il peut perdre une vie. if (platesformes[posMario]>platesformes[posMario+1]) { if (platesformes[posMario]-platesformes[posMario+1]>plusGrandeChute) plusGrandeChute = platesformes[posMario]-platesformes[posMario+1]; if (platesformes[posMario]-platesformes[posMario+1]>CHUTE_MORTELLE) nbViesUtilisees++; } } } posMario++; } while (posMario NB_VIES_MAX) { cout << "Mario a besoin de " << nbViesUtilisees << " pour atteindre la dernière plates-formes" << endl; } else { cout << "Les " << NB_VIES_MAX << " vies ont suffit et Mario n'en a utilisé que " << nbViesUtilisees << "! SUPER, Mario !"<< endl; } cout << "Mario a gravi sa plus haute plate-forme de hauteur " << plusHautePlateforme << " en position "<< iPlusHautePlateforme << "."<< endl; cout << "Sa plus grande ascension a été de " << plusGrandeAscension << "niveaux et sa plus grande chute est de " << plusGrandeChute << " niveaux." << endl; }