GandhiWallemme Posté(e) 6 mai 2007 Posté(e) 6 mai 2007 M'obligez pas à fermer le forum s'il vous plait... Citer
Mikhaïl Posté(e) 6 mai 2007 Posté(e) 6 mai 2007 M'obligez pas à fermer le forum s'il vous plait... Citer
tititolosa Posté(e) 6 mai 2007 Posté(e) 6 mai 2007 M'obligez pas à fermer le forum s'il vous plait... Mouais Citer
Mikhaïl Posté(e) 6 mai 2007 Posté(e) 6 mai 2007 oui parce qu'il y a eu des posts sur les élections alors que le topic est fermé. J'ai vu, mais c'était juste de la déconnade quoi... Citer
GandhiWallemme Posté(e) 6 mai 2007 Posté(e) 6 mai 2007 J'ai vu, mais c'était juste de la déconnade quoi... Il décide d'appliquer la tolérance 0, il n'a pas fondamentalement tort je pense. It's his choice Citer
GandhiWallemme Posté(e) 6 mai 2007 Posté(e) 6 mai 2007 (modifié) et les commentaires... Yep, j'allais le faire (et c'est fait) //************************ Application console (C++)**************************** //****************************************************************************** // PROGRAMME : Le compte est bon // DATE : 02/05/07 // OBJET : ou pas // LIMITES : ou pas // AUTEUR(S) : bluejark //****************************************************************************** /* si vous construisez un projet et si vous utilisez une des bibliothèques de iutupadte (cf. aide en ligne) : -1- décommentez la ligne suivante et cliquez sur [projet|options du projet|parametre|editeur de lieus|ajouter fichier] puis rechercher la(les) bibliothèque(s) *.a sous ...\dev-cpp\lib\iut_tlse3 -2- dans le paragraphe suivant décommentez le(s) fichiers(s) d'entête *.h ou *.hpp qui permet(tent) d'inclure les déclaration des fonctions utilisées */ //#define _IUT_TLSE3_PROJ /* Ce paragraphe permet de déclarer les fonctions des fichiers suivants : conio-bis - gestion de fenêtres dos, de couleurs, lecture sans écho... dos-bis - gestion du temps, attentes... frame - tracé de cadres, grilles, traits, flèches... transcode - affichage avec accents ou sans accent sous dos ou windows keys-fr - liste des clés sous forme de noms symboliques iutupdate - inclut tous les fichiers précédents en une seule fois (cf le fichier de présentation iutupdate.pdf dans l'aide en ligne) => pour utiliser les bibliothèques "décommenter" les lignes correspondantes */ //#include <iut_tlse3\iutupdate.hpp> //inclut en une fois tous les fichiers //#include <iut_tlse3\frame.hpp> //inclut en outre conio-bis //#include <iut_tlse3\conio-bis.h> //#include <iut_tlse3\dos-bis.h> //#include <iut_tlse3\transcode.hpp> //#include <iut_tlse3\keys-fr.h> #include <iostream> // flux d'entrée sortie #include <iomanip> // manipulateurs de flux #include <cstdlib> // bibliothèque c standart #include <stdlib.h> #include <string.h> #include <stdio.h> #include <fstream> #include <iut_tlse3\iutupdate.hpp> using namespace std; // permet d'utiliser les flux cin et cout //*************************** Déclaration globale ****************************** /***** constante *****/ /******* type ********/ typedef int tabobjets [15]; typedef char regles[500]; /***** fonction ******/ void choix_menu (int &choixmenu) //Oriente le choix primaire de l'utilisateur { //Décla //Actions do{cout<<"1.Regles"<<endl<<"2.Le but defini"<<endl<<"3.Objets definis"<<endl<<"4.Random"<<endl; cin>>choixmenu; if(choixmenu!=1 && choixmenu!=2 && choixmenu!=3 && choixmenu!=4) cout<<endl<<"Mauvais choix."<<endl<<endl; }while(choixmenu!=1 && choixmenu!=2 && choixmenu!=3 && choixmenu!=4); } void choisirbut (int &lebut) //Permet de choisir le but à atteindre { //Décla //Actions do{ cout<<"Donnez moi un chiffre entre 100 et 999"<<endl; cin>>lebut; } while (lebut<100 or lebut>999); } void choisirobjets (tabobjets &objets) //Permet de choisir les 6 nombres que l'utilisateur pourra utiliser { //Décla int i,j; int etat; int a; //Actions for (i=0;i<6;i++) objets[i]=0; for (i=0;i<6;i++) { do { etat=0; cout<<endl<<"Donnez votre chiffre n°"<<i+1<<" :"<<endl; cin>>objets[i]; if (objets[i]==1 or objets[i]==2 or objets[i]==3 or objets[i]==4 or objets[i]==5 or //Vérifie que le nombre appartient à la liste objets[i]==6 or objets[i]==7 or objets[i]==8 or objets[i]==9 or objets[i]==10 or objets[i]==25 or objets[i]==50 or objets[i]==75 or objets[i]==100) {for (j=0;j<i;j++) if (objets[i]!=objets[j])//Vérifie que tous les nombres sont différents { etat=etat+0; } else etat=1; } else etat=1; } while (etat==1); } } void creerbut (tabobjets objets, int &lebut) //Crée le but à atteindre en fonction des 6 nombres { //Décla int i,j,k,inter; tabobjets objects; //Actions srand(time(NULL)); //Débloque la commande du hasard (sans ça, le hasard ne s'effectue que la première fois) do { for (k=0;k<6;k++) {objets[k]=objects[k];}//Recopie les objets dans un nouveau tableau afin de garder les valeurs initiales en cas de redémarrage de boucle i=rand()%6; //Via les rand(), la même ligne de calcul est effectué à chaque fois, mais les valeurs sont différentes à chaque tour de boucle lebut=objets[i]; for (j=i;j<5;j++) objets[j]=objets[j+1];//Ecrasement de la valeur déjà utilisée i=rand()%5; lebut=lebut*objets[i]; for (j=i;j<4;j++) objets[j]=objets[j+1]; i=rand()%4; inter=objets[i]; for (j=i;j<3;j++) objets[j]=objets[j+1]; i=rand()%3; lebut=lebut+objets[i]*inter; for(j=i;j<2;j++) objets[j]=objets[j+1]; i=rand()%2; lebut=lebut*objets[i]; for(j=i;j<1;j++) objets[j]=objets[j+1]; lebut=lebut+objets[0]; } while (lebut<100 || lebut>999);//Vérifie la contrainte de valeur concernant le but à atteindre } void creerobjets (tabobjets &objets, int &possibilite, int lebut)//Crée les objets à partir du but { //Décla tabobjets liste={1,2,3,4,5,6,7,8,9,10,25,50,75,100}; int i,j,k,l,m,n,a,op; //Actions possibilite=0; for (i=0;i<14;i++)//Les 6 boucles sont là pour tester toutes les possibilités.. {for(j=0;j<14;j++) {for(k=0;k<14;k++) {for(l=0;l<14;l++) {for(m=0;m<14;m++) {for(n=0;n<14;n++) {if (i!=j && i!=k && i!=l && i!=m && i!=n && j!=k && j!=l && j!=m && j!=n && k!=l && k!=m && k!=n && l!=m && l!=n && m!=n)//Permet de n'avoir aucune valeur identique {srand(time(NULL)); op=rand()%4;//4 calculs sont possibles. Cette ligne en choisit un. if(op==0) {a=(liste[i]*liste[j])/(liste[k]+liste[l])-liste[m]+liste[n];} else if(op==1) {a=(liste[i]+liste[j])/(liste[k]*liste[l])+liste[m]-liste[n];} else if (op==2) {a=liste[i]*(liste[j]+(liste[k]*liste[l]))-(liste[m]*liste[n]);} else {a=(liste[i]-liste[j])*(liste[k]+liste[l])+liste[m]+liste[n];} if(a==lebut)//Vérifie l'égalité entre le but à atteindre et la ligne de calcul. {possibilite=possibilite+1;//Si possibilité=0, à la fin, alors il faut saisir un nouveau "but". if (possibilite==1)//Ecriture des 6 nombres pour la première boucle. {objets[0]=liste[i]; objets[1]=liste[j]; objets[2]=liste[k]; objets[3]=liste[l]; objets[4]=liste[m]; objets[5]=liste[n]; } } } } } } } } } } void genererbut(int &lebut)//Crée un but de manière aléatoire. { //Décla //Actions srand(time(NULL)); lebut=rand()%900+100;//Permet d'avoir un but compris entre 100 et 999. } void affichageobjetsbut (tabobjets &objets, int attempt)//Affiche les 6 nombres et le but à atteindre. { //Décla int i; //Actions cout<<endl<<"Vos 6 nombres sont: "<<endl; for (i=0;i<6;i++) {cout<<objets[i]<<" "; } cout<<endl<<"Le but est: "; cout<<attempt<<endl; } void traitement (tabobjets objects, int &lebut, int butreel)//Vérifie la syntaxe des calculs de l'utilisateur, et renvoie le total de l'utilisateur à la fin des calculs. { //Décla char op; int choix,a,b,i,test,valobjet,valobjet2; tabobjets objets; int testm,testd; //Actions do{ for(i=0;i<6;i++) {objets[i]=objects[i];}//Recopie les 6 objets à chaque tour de boucle (si tel est le cas) testm=0; testd=0; cout<<endl<<"Faites votre premier calcul (validez à chaque étape)"<<endl; do{ test=0; cin>>a;//Range dans la variable a le premier nombre utilisé for(i=0;i<6;i++) {if (a==objets[i])//Vérifie que ce nombre correspond bien à un des 6 nombres disponibles {test=test+1; valobjet=i;}//Stocke la valeur du nombre utilisé grâce à l'incrément else test=test; } if (test==0) {cout<<"Nombre 1 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); do{ cin>>op;//Stocke le choix de l'opération à effectuer if (op!='+' && op!='-' && op!='/' && op!='*') cout<<"Mauvais choix d'opérateur. Choix: +,-,*,/"<<endl; } while (op!='+' && op!='-' && op!='/' && op!='*');//Vérifie que cette opération correspond aux choix disponibles do{ test=0; cin>>b;//Stocke dans la variable b le second nombre utilisé for(i=0;i<6;i++) {if (b==objets[i] && i!=valobjet)//Vérifie que ce nombre correspond aux 5 nombres disponibles (le i!=valobjet correspond au 1er nombre utilisé) {test=test+1; valobjet2=i;}//Stocke la valeur du nombre utilisé grâce à l'incrément else test=test; } if (test==0) {cout<<"Nombre 2 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); if(op=='*')//Effectue l'opération choisie {objets[6]=a*b;//dans la 6eme case du tableau le résultat du calcul } else if(op=='/') objets[6]=a/b; else if (op=='+') objets[6]=a+b; else if (op=='-') objets[6]=a-b; if (objets[6]<0) {testm=1;}//Regarde si le résultat n'est pas inférieur à 0 (contrainte du cahier des charges) if(op=='/') { if((objets[6]*!=a)//Regarde si a/b == (a/B)*b, pour voir s'il n'y a pas troncature (contrainte du cahier des charges) {testd=1;} } if (testd==1) cout<<endl<<w2d("Le reste de votre division n'est pas égal à 0.")<<endl; if (testm==1) cout<<endl<<w2d("Le nombre calculé est négatif.")<<endl; }while(testm==1 || testd==1);//Reboucle en cas de non respect du cahier des charges if(valobjet<valobjet2)//Regarde quel incrément est le + grand pour commencer par celui-ci { for(i=valobjet2;i<6;i++) {objets[i]=objets[i+1];}//Décale vers la gauche les nombres à partir de l'incrément le + grand for(i=valobjet;i<5;i++)//Décale vers la gauche à partir du + petit incrément {objets[i]=objets[i+1];} } else{//Fait la même chose, dans l'autre cas (valobjet2<valobjet) for(i=valobjet;i<6;i++) {objets[i]=objets[i+1];} for(i=valobjet2;i<5;i++) {objets[i]=objets[i+1];} } for(i=0;i<5;i++) cout<<endl<<"Ojbet"<<i+1<<":"<<objets[i];//Affiche les nouveaux nombres disponibles cout<<endl<<"Le but est: "<<butreel;//Affiche de nouveau le but do{ cout<<endl<<"Voulez vous arrêter ici?0/1: ";//Propose l'arrêt du jeu, dans le cas où le total serait atteint cin>>choix;//Enregistre le choix de l'utilisateur } while(choix!=0 && choix!=1);//Vérifie la syntaxe de la réponse if (choix==1) { do{ test=0; cout<<endl<<"Entrez votre nombre: ";//Propose à l'utilisateur l'enregistrement du nombre final, dans le cas où le but serait atteint d'après l'utilisateur cin>>lebut;//Enregistrement le but de l'utilisateur for(i=0;i<5;i++) {if(lebut==objets[i])//Vérifie que ce but correspond à un des nombres disponibles {test=test+1;} else test=test; } if (test==0) cout<<"Tricheur.."<<endl; }while(test==0); cout<<endl<<"Votre total est "<<lebut;//Confirme le total } else//Continue le jeu (Répète les mêmes actions) { do{ testm=0; testd=0; cout<<endl<<"Faites votre deuxième calcul (validez à chaque étape)"<<endl; do{ test=0; cin>>a; for(i=0;i<5;i++) {if (a==objets[i]) {test=test+1; valobjet=i;} else test=test; } if (test==0) {cout<<"Nombre 1 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); do{ cin>>op; if (op!='+' && op!='-' && op!='/' && op!='*') cout<<"Mauvais choix d'opérateur. Choix: +,-,*,/"<<endl; } while (op!='+' && op!='-' && op!='/' && op!='*'); do{ test=0; cin>>b; for(i=0;i<5;i++) {if (b==objets[i] && i!=valobjet) {test=test+1; valobjet2=i;} else test=test; } if (test==0) {cout<<"Nombre 2 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); if(op=='*') {objets[5]=a*b; } else if(op=='/') objets[5]=a/b; else if (op=='+') objets[5]=a+b; else if (op=='-') objets[5]=a-b; if (objets[5]<0) {testm=1;} if(op=='/') { if((objets[5]*!=a) {testd=1;} } if (testd==1) cout<<endl<<w2d("Le reste de votre division n'est pas égal à 0.")<<endl; if (testm==1) cout<<endl<<w2d("Le nombre calculé est négatif.")<<endl; }while(testm==1 || testd==1); if(valobjet<valobjet2) { for(i=valobjet2;i<5;i++) {objets[i]=objets[i+1];} for(i=valobjet;i<4;i++) {objets[i]=objets[i+1];} } else{ for(i=valobjet;i<5;i++) {objets[i]=objets[i+1];} for(i=valobjet2;i<4;i++) {objets[i]=objets[i+1];} } for(i=0;i<4;i++) cout<<endl<<"Ojbet"<<i+1<<":"<<objets[i]; cout<<endl<<"Le but est: "<<butreel; do{ cout<<endl<<"Voulez vous arrêter ici?0/1: "; cin>>choix; }while(choix!=0 && choix!=1); if (choix==1) { do{ test=0; cout<<endl<<"Entrez votre nombre: "; cin>>lebut; for(i=0;i<4;i++) {if(lebut==objets[i]) {test=test+1;} else test=test; } if (test==0) cout<<"Tricheur.."<<endl; }while(test==0); cout<<endl<<"Votre total est "<<lebut<<endl; } else { do{ testm=0; testd=0; cout<<endl<<"Faites votre troisième calcul (validez à chaque étape)"<<endl; do{ test=0; cin>>a; for(i=0;i<4;i++) {if (a==objets[i]) {test=test+1; valobjet=i;} else test=test; } if (test==0) {cout<<"Nombre 1 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); do{ cin>>op; if (op!='+' && op!='-' && op!='/' && op!='*') cout<<"Mauvais choix d'opérateur. Choix: +,-,*,/"<<endl; } while (op!='+' && op!='-' && op!='/' && op!='*'); do{ test=0; cin>>b; for(i=0;i<4;i++) {if (b==objets[i] && i!=valobjet) {test=test+1; valobjet2=i;} else test=test; } if (test==0) {cout<<"Nombre 2 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); if(op=='*') {objets[4]=a*b; } else if(op=='/') objets[4]=a/b; else if (op=='+') objets[4]=a+b; else if (op=='-') objets[4]=a-b; if (objets[4]<0) {testm=1;} if(op=='/') { if((objets[4]*!=a) {testd=1;} } if (testd==1) cout<<endl<<w2d("Le reste de votre division n'est pas égal à 0.")<<endl; if (testm==1) cout<<endl<<w2d("Le nombre calculé est négatif.")<<endl; }while(testm==1 || testd==1); if(valobjet<valobjet2) { for(i=valobjet2;i<4;i++) {objets[i]=objets[i+1];} for(i=valobjet;i<3;i++) {objets[i]=objets[i+1];} } else{ for(i=valobjet;i<4;i++) {objets[i]=objets[i+1];} for(i=valobjet2;i<3;i++) {objets[i]=objets[i+1];} } for(i=0;i<3;i++) cout<<endl<<"Ojbet"<<i+1<<":"<<objets[i]; cout<<endl<<"Le but est: "<<butreel; do{ cout<<endl<<"Voulez vous arrêter ici?0/1: "; cin>>choix; }while(choix!=0 && choix!=1); if (choix==1) { do{ test=0; cout<<endl<<"Entrez votre nombre: "; cin>>lebut; for(i=0;i<3;i++) {if(lebut==objets[i]) {test=test+1;} else test=test; } if (test==0) cout<<"Tricheur.."<<endl; }while(test==0); cout<<endl<<"Votre total est "<<lebut<<endl; } else { do{ testm=0; testd=0; cout<<endl<<"Faites votre quatrième calcul (validez à chaque étape)"<<endl; do{ test=0; cin>>a; for(i=0;i<3;i++) {if (a==objets[i]) {test=test+1; valobjet=i;} else test=test; } if (test==0) {cout<<"Nombre 1 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); do{ cin>>op; if (op!='+' && op!='-' && op!='/' && op!='*') cout<<"Mauvais choix d'opérateur. Choix: +,-,*,/"<<endl; } while (op!='+' && op!='-' && op!='/' && op!='*'); do{ test=0; cin>>b; for(i=0;i<3;i++) {if (b==objets[i] && i!=valobjet) {test=test+1; valobjet2=i;} else test=test; } if (test==0) {cout<<"Nombre 2 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); if(op=='*') {objets[3]=a*b; } else if(op=='/') objets[3]=a/b; else if (op=='+') objets[3]=a+b; else if (op=='-') objets[3]=a-b; if (objets[3]<0) {testm=1;} if(op=='/') { if((objets[3]*!=a) {testd=1;} } if (testd==1) cout<<endl<<w2d("Le reste de votre division n'est pas égal à 0.")<<endl; if (testm==1) cout<<endl<<w2d("Le nombre calculé est négatif.")<<endl; }while(testm==1 || testd==1); if(valobjet<valobjet2) { for(i=valobjet2;i<3;i++) {objets[i]=objets[i+1];} for(i=valobjet;i<2;i++) {objets[i]=objets[i+1];} } else{ for(i=valobjet;i<3;i++) {objets[i]=objets[i+1];} for(i=valobjet2;i<2;i++) {objets[i]=objets[i+1];} } for(i=0;i<2;i++) cout<<endl<<"Ojbet"<<i+1<<":"<<objets[i]; cout<<endl<<"Le but est: "<<butreel; do{ cout<<endl<<"Voulez vous arrêter ici?0/1: "; cin>>choix; }while(choix!=0 && choix!=1); if (choix==1) { do{ test=0; cout<<endl<<"Entrez votre nombre: "; cin>>lebut; for(i=0;i<2;i++) {if(lebut==objets[i]) {test=test+1;} else test=test; } if (test==0) cout<<"Tricheur.."<<endl; }while(test==0); cout<<endl<<"Votre total est "<<lebut<<endl; } else { do{ testm=0; testd=0; cout<<endl<<"Faites votre dernier calcul (validez a chaque etape)"<<endl; do{ test=0; cin>>a; for(i=0;i<2;i++) {if (a==objets[i]) {test=test+1; valobjet=i;} else test=test; } if (test==0) {cout<<"Nombre 1 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); do{ cin>>op; if (op!='+' && op!='-' && op!='/' && op!='*') cout<<"Mauvais choix d'operateur. Choix: +,-,*,/"<<endl; } while (op!='+' && op!='-' && op!='/' && op!='*'); do{ test=0; cin>>b; for(i=0;i<2;i++) {if (b==objets[i] && i!=valobjet) {test=test+1;} else test=test; } if (test==0) {cout<<"Nombre 2 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); if(op=='*') {objets[2]=a*b; } else if(op=='/') objets[2]=a/b; else if (op=='+') objets[2]=a+b; else if (op=='-') objets[2]=a-b; if (objets[2]<0) {testm=1;} if(op=='/') { if((objets[2]*!=a) {testd=1;} } if (testd==1) cout<<endl<<w2d("Le reste de votre division n'est pas égal à 0.")<<endl; if (testm==1) cout<<endl<<w2d("Le nombre calculé est négatif.")<<endl; }while(testm==1 || testd==1); if(valobjet<valobjet2) { for(i=valobjet2;i<2;i++) {objets[i]=objets[i+1];} for(i=valobjet;i<1;i++) {objets[i]=objets[i+1];} } else{ for(i=valobjet;i<2;i++) {objets[i]=objets[i+1];} for(i=valobjet2;i<1;i++) {objets[i]=objets[i+1];} } lebut=objets[0];//Enregistre directement le dernier nombre possible dans la variable du but de l'utilisateur cout<<endl<<"Votre total est: "<<lebut<<endl;//Confirme le but de l'utilisateur } }}} } void comparaison (int lebutreel, int lebututil, int &redemarrer)//Compare le but de l'utilisateur et le but à atteindre, et valide la comparaison de manière explicite. Propose à l'utilisateur de refaire le calcul avec les mêmes nombres s'il a échoué. { if (lebutreel==lebututil)//Compare les 2 buts (de l'utilisateur, et à atteindre) {cout<<endl<<"Bravo! Le compte est bon.";//Confirme l'égalité redemarrer=0;}//Réduit la proposition de redémarrage avec les mêmes nombres à néant else {cout<<endl<<"Dommage.. le compte est mauvais. Aha..";//Confirme l'inégalité do{ cout<<endl<<"Voulez vous refaire ce calcul?0/1: ";//Propose à l'utilisateur le redémarrage du calcul avec les mêmes nombres cin>>redemarrer;//Enregistre le choix de l'utilisateur }while(redemarrer!=0 && redemarrer!=1);}//Vérifie la syntaxe de l'enregistrement } //*************************** Programme principal ****************************** int main (int argc, char *argv[]) { // Declaration locale int choixdumenu, but, bututil; tabobjets six; int i; int reboot; int redemarrage; int victoire, defaite; int possible; // Action victoire=0;//Met le nombre de victoire de l'utilisateur à 0 defaite=0;//Met le nombre de défaite de l'utilisateur à 0 do { choix_menu(choixdumenu);//Propose le menu à l'utilisateur if (choixdumenu==2) {do{ choisirbut(but);//Demande à l'utilisateur le but à atteindre creerobjets(six,possible,but);//Calcule 6 nombres if (possible==0)//Vérifie via cette variable renvoyée par la procédure, qu'on peut atteindre le but avec ces 6 nombres cout<<endl<<"Choisissez un autre but"<<endl; }while(possible==0); } else if (choixdumenu==3) {choisirobjets(six);//Demande à l'utilisateur les 6 nombres dont il disposera creerbut(six,but);//Calcule un but à partir de ces 6 nombres } else if (choixdumenu==4) {do{ genererbut(but);//Crée un but au hasard grâce à la fonction rand() (random) compris entre 100 et 999 creerobjets(six,possible,but); }while(possible==0); } do{ affichageobjetsbut (six, but);//Affiche les données (les nombres et le but) cout<<"Proposez votre solution"; traitement(six,bututil,but);//Récupère le total calculé par l'utilisateur cout<<endl<<w2d("Le but était de: ")<<but<<endl;//Rappele le but à atteindre if (but==bututil) {victoire=victoire+1;}//Incrémentation du nombre de victoire s'il ya égalité entre le but atteint par l'utilisateur et le but à atteindre else {defaite=defaite+1;}//Incrémentation du nombre de défaite s'il n'y a pas égalité entre le but atteint par l'utilisateur et le but à atteindre cout<<endl<<"Victoire";//Affiche le nombre de victoire (une if en fonction du nombre de victoire et donc de l'utilisation du pluriel) if(victoire>1) {cout<<"s: "<<victoire<<endl;} else {cout<<": "<<victoire<<endl;} cout<<"Defaite";//Même chose pour les défaites if(defaite>1) {cout<<"s: "<<defaite<<endl;} else {cout<<": "<<defaite<<endl;} comparaison (but,bututil,redemarrage);//Propose un redémarrage avec les mêmes nombres }while(redemarrage==1); do{ cout<<endl<<"Voulez vous recommencer un nouveau calcul?0/1: "<<endl;//Propose un redémarrage du jeu depuis le début cin>>reboot;//Enregistre le choix de l'utilisateur }while(reboot!=0 && reboot!=1);//Vérifie la syntaxe } while (reboot==1);//Reboucle si l'utilisateur choisit un redémarrage du jeu // retour au sytème d'exploitattion cout << endl; system("pause"); return (0); } //**************************** Fin du programme *******************************[/codebox] ps: c'est fini, j'arrête de vous souler avec mon programme. Ps2: Franfrou, comment fait-on pour utiliser le défilement en utilisant le code? Parce que c'est chiant de créer des posts aussi longs, et j'ai vu que tu me l'avait réduit grâce à un défilement sur mon 1er post.. Les stat's m'ont toujours fait marrer. Les 11 premiers profils (de ceux qui ont le + posté sur ce forum) ont 4 étoiles, le 12ème en a 3. Ce 12ème est akinos. Modifié 7 mai 2007 par nee_trimer_ue_ved Citer
Akinsson Posté(e) 6 mai 2007 Posté(e) 6 mai 2007 Ps2: Franfrou, comment fait-on pour utiliser le défilement en utilisant le code? Parce que c'est chiant de créer des posts aussi longs, et j'ai vu que tu me l'avait réduit grâce à un défilement sur mon 1er post.. Les stat's m'ont toujours fait marrer. Les 11 premiers profils (de ceux qui ont le + posté sur ce forum) ont 4 étoiles, le 12ème en a 3. Ce 12ème est akinos. Au moins je me démarque Citer
marco Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 ps: c'est fini, j'arrête de vous souler avec mon programme. Mais qu'est-ce tu branles Citer
Bengijol Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 Sa représente quoi les étoiles? une note que les autres forumeurs peuvent t'attribuer dans ton profil Citer
FF Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 Yep, j'allais le faire (et c'est fait) //************************ Application console (C++)**************************** //****************************************************************************** // PROGRAMME : Le compte est bon // DATE : 02/05/07 // OBJET : ou pas // LIMITES : ou pas // AUTEUR(S) : bluejark //****************************************************************************** /* si vous construisez un projet et si vous utilisez une des bibliothèques de iutupadte (cf. aide en ligne) : -1- décommentez la ligne suivante et cliquez sur [projet|options du projet|parametre|editeur de lieus|ajouter fichier] puis rechercher la(les) bibliothèque(s) *.a sous ...\dev-cpp\lib\iut_tlse3 -2- dans le paragraphe suivant décommentez le(s) fichiers(s) d'entête *.h ou *.hpp qui permet(tent) d'inclure les déclaration des fonctions utilisées */ //#define _IUT_TLSE3_PROJ /* Ce paragraphe permet de déclarer les fonctions des fichiers suivants : conio-bis - gestion de fenêtres dos, de couleurs, lecture sans écho... dos-bis - gestion du temps, attentes... frame - tracé de cadres, grilles, traits, flèches... transcode - affichage avec accents ou sans accent sous dos ou windows keys-fr - liste des clés sous forme de noms symboliques iutupdate - inclut tous les fichiers précédents en une seule fois (cf le fichier de présentation iutupdate.pdf dans l'aide en ligne) => pour utiliser les bibliothèques "décommenter" les lignes correspondantes */ //#include <iut_tlse3\iutupdate.hpp> //inclut en une fois tous les fichiers //#include <iut_tlse3\frame.hpp> //inclut en outre conio-bis //#include <iut_tlse3\conio-bis.h> //#include <iut_tlse3\dos-bis.h> //#include <iut_tlse3\transcode.hpp> //#include <iut_tlse3\keys-fr.h> #include <iostream> // flux d'entrée sortie #include <iomanip> // manipulateurs de flux #include <cstdlib> // bibliothèque c standart #include <stdlib.h> #include <string.h> #include <stdio.h> #include <fstream> #include <iut_tlse3\iutupdate.hpp> using namespace std; // permet d'utiliser les flux cin et cout //*************************** Déclaration globale ****************************** /***** constante *****/ /******* type ********/ typedef int tabobjets [15]; typedef char regles[500]; /***** fonction ******/ void choix_menu (int &choixmenu) //Oriente le choix primaire de l'utilisateur { //Décla //Actions do{cout<<"1.Regles"<<endl<<"2.Le but defini"<<endl<<"3.Objets definis"<<endl<<"4.Random"<<endl; cin>>choixmenu; if(choixmenu!=1 && choixmenu!=2 && choixmenu!=3 && choixmenu!=4) cout<<endl<<"Mauvais choix."<<endl<<endl; }while(choixmenu!=1 && choixmenu!=2 && choixmenu!=3 && choixmenu!=4); } void choisirbut (int &lebut) //Permet de choisir le but à atteindre { //Décla //Actions do{ cout<<"Donnez moi un chiffre entre 100 et 999"<<endl; cin>>lebut; } while (lebut<100 or lebut>999); } void choisirobjets (tabobjets &objets) //Permet de choisir les 6 nombres que l'utilisateur pourra utiliser { //Décla int i,j; int etat; int a; //Actions for (i=0;i<6;i++) objets[i]=0; for (i=0;i<6;i++) { do { etat=0; cout<<endl<<"Donnez votre chiffre n°"<<i+1<<" :"<<endl; cin>>objets[i]; if (objets[i]==1 or objets[i]==2 or objets[i]==3 or objets[i]==4 or objets[i]==5 or //Vérifie que le nombre appartient à la liste objets[i]==6 or objets[i]==7 or objets[i]==8 or objets[i]==9 or objets[i]==10 or objets[i]==25 or objets[i]==50 or objets[i]==75 or objets[i]==100) {for (j=0;j<i;j++) if (objets[i]!=objets[j])//Vérifie que tous les nombres sont différents { etat=etat+0; } else etat=1; } else etat=1; } while (etat==1); } } void creerbut (tabobjets objets, int &lebut) //Crée le but à atteindre en fonction des 6 nombres { //Décla int i,j,k,inter; tabobjets objects; //Actions srand(time(NULL)); //Débloque la commande du hasard (sans ça, le hasard ne s'effectue que la première fois) do { for (k=0;k<6;k++) {objets[k]=objects[k];}//Recopie les objets dans un nouveau tableau afin de garder les valeurs initiales en cas de redémarrage de boucle i=rand()%6; //Via les rand(), la même ligne de calcul est effectué à chaque fois, mais les valeurs sont différentes à chaque tour de boucle lebut=objets[i]; for (j=i;j<5;j++) objets[j]=objets[j+1];//Ecrasement de la valeur déjà utilisée i=rand()%5; lebut=lebut*objets[i]; for (j=i;j<4;j++) objets[j]=objets[j+1]; i=rand()%4; inter=objets[i]; for (j=i;j<3;j++) objets[j]=objets[j+1]; i=rand()%3; lebut=lebut+objets[i]*inter; for(j=i;j<2;j++) objets[j]=objets[j+1]; i=rand()%2; lebut=lebut*objets[i]; for(j=i;j<1;j++) objets[j]=objets[j+1]; lebut=lebut+objets[0]; } while (lebut<100 || lebut>999);//Vérifie la contrainte de valeur concernant le but à atteindre } void creerobjets (tabobjets &objets, int &possibilite, int lebut)//Crée les objets à partir du but { //Décla tabobjets liste={1,2,3,4,5,6,7,8,9,10,25,50,75,100}; int i,j,k,l,m,n,a,op; //Actions possibilite=0; for (i=0;i<14;i++)//Les 6 boucles sont là pour tester toutes les possibilités.. {for(j=0;j<14;j++) {for(k=0;k<14;k++) {for(l=0;l<14;l++) {for(m=0;m<14;m++) {for(n=0;n<14;n++) {if (i!=j && i!=k && i!=l && i!=m && i!=n && j!=k && j!=l && j!=m && j!=n && k!=l && k!=m && k!=n && l!=m && l!=n && m!=n)//Permet de n'avoir aucune valeur identique {srand(time(NULL)); op=rand()%4;//4 calculs sont possibles. Cette ligne en choisit un. if(op==0) {a=(liste[i]*liste[j])/(liste[k]+liste[l])-liste[m]+liste[n];} else if(op==1) {a=(liste[i]+liste[j])/(liste[k]*liste[l])+liste[m]-liste[n];} else if (op==2) {a=liste[i]*(liste[j]+(liste[k]*liste[l]))-(liste[m]*liste[n]);} else {a=(liste[i]-liste[j])*(liste[k]+liste[l])+liste[m]+liste[n];} if(a==lebut)//Vérifie l'égalité entre le but à atteindre et la ligne de calcul. {possibilite=possibilite+1;//Si possibilité=0, à la fin, alors il faut saisir un nouveau "but". if (possibilite==1)//Ecriture des 6 nombres pour la première boucle. {objets[0]=liste[i]; objets[1]=liste[j]; objets[2]=liste[k]; objets[3]=liste[l]; objets[4]=liste[m]; objets[5]=liste[n]; } } } } } } } } } } void genererbut(int &lebut)//Crée un but de manière aléatoire. { //Décla //Actions srand(time(NULL)); lebut=rand()%900+100;//Permet d'avoir un but compris entre 100 et 999. } void affichageobjetsbut (tabobjets &objets, int attempt)//Affiche les 6 nombres et le but à atteindre. { //Décla int i; //Actions cout<<endl<<"Vos 6 nombres sont: "<<endl; for (i=0;i<6;i++) {cout<<objets[i]<<" "; } cout<<endl<<"Le but est: "; cout<<attempt<<endl; } void traitement (tabobjets objects, int &lebut, int butreel)//Vérifie la syntaxe des calculs de l'utilisateur, et renvoie le total de l'utilisateur à la fin des calculs. { //Décla char op; int choix,a,b,i,test,valobjet,valobjet2; tabobjets objets; int testm,testd; //Actions do{ for(i=0;i<6;i++) {objets[i]=objects[i];}//Recopie les 6 objets à chaque tour de boucle (si tel est le cas) testm=0; testd=0; cout<<endl<<"Faites votre premier calcul (validez à chaque étape)"<<endl; do{ test=0; cin>>a;//Range dans la variable a le premier nombre utilisé for(i=0;i<6;i++) {if (a==objets[i])//Vérifie que ce nombre correspond bien à un des 6 nombres disponibles {test=test+1; valobjet=i;}//Stocke la valeur du nombre utilisé grâce à l'incrément else test=test; } if (test==0) {cout<<"Nombre 1 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); do{ cin>>op;//Stocke le choix de l'opération à effectuer if (op!='+' && op!='-' && op!='/' && op!='*') cout<<"Mauvais choix d'opérateur. Choix: +,-,*,/"<<endl; } while (op!='+' && op!='-' && op!='/' && op!='*');//Vérifie que cette opération correspond aux choix disponibles do{ test=0; cin>>b;//Stocke dans la variable b le second nombre utilisé for(i=0;i<6;i++) {if (b==objets[i] && i!=valobjet)//Vérifie que ce nombre correspond aux 5 nombres disponibles (le i!=valobjet correspond au 1er nombre utilisé) {test=test+1; valobjet2=i;}//Stocke la valeur du nombre utilisé grâce à l'incrément else test=test; } if (test==0) {cout<<"Nombre 2 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); if(op=='*')//Effectue l'opération choisie {objets[6]=a*b;//dans la 6eme case du tableau le résultat du calcul } else if(op=='/') objets[6]=a/b; else if (op=='+') objets[6]=a+b; else if (op=='-') objets[6]=a-b; if (objets[6]<0) {testm=1;}//Regarde si le résultat n'est pas inférieur à 0 (contrainte du cahier des charges) if(op=='/') { if((objets[6]*!=a)//Regarde si a/b == (a/;)*b, pour voir s'il n'y a pas troncature (contrainte du cahier des charges) {testd=1;} } if (testd==1) cout<<endl<<w2d("Le reste de votre division n'est pas égal à 0.")<<endl; if (testm==1) cout<<endl<<w2d("Le nombre calculé est négatif.")<<endl; }while(testm==1 || testd==1);//Reboucle en cas de non respect du cahier des charges if(valobjet<valobjet2)//Regarde quel incrément est le + grand pour commencer par celui-ci { for(i=valobjet2;i<6;i++) {objets[i]=objets[i+1];}//Décale vers la gauche les nombres à partir de l'incrément le + grand for(i=valobjet;i<5;i++)//Décale vers la gauche à partir du + petit incrément {objets[i]=objets[i+1];} } else{//Fait la même chose, dans l'autre cas (valobjet2<valobjet) for(i=valobjet;i<6;i++) {objets[i]=objets[i+1];} for(i=valobjet2;i<5;i++) {objets[i]=objets[i+1];} } for(i=0;i<5;i++) cout<<endl<<"Ojbet"<<i+1<<":"<<objets[i];//Affiche les nouveaux nombres disponibles cout<<endl<<"Le but est: "<<butreel;//Affiche de nouveau le but do{ cout<<endl<<"Voulez vous arrêter ici?0/1: ";//Propose l'arrêt du jeu, dans le cas où le total serait atteint cin>>choix;//Enregistre le choix de l'utilisateur } while(choix!=0 && choix!=1);//Vérifie la syntaxe de la réponse if (choix==1) { do{ test=0; cout<<endl<<"Entrez votre nombre: ";//Propose à l'utilisateur l'enregistrement du nombre final, dans le cas où le but serait atteint d'après l'utilisateur cin>>lebut;//Enregistrement le but de l'utilisateur for(i=0;i<5;i++) {if(lebut==objets[i])//Vérifie que ce but correspond à un des nombres disponibles {test=test+1;} else test=test; } if (test==0) cout<<"Tricheur.."<<endl; }while(test==0); cout<<endl<<"Votre total est "<<lebut;//Confirme le total } else//Continue le jeu (Répète les mêmes actions) { do{ testm=0; testd=0; cout<<endl<<"Faites votre deuxième calcul (validez à chaque étape)"<<endl; do{ test=0; cin>>a; for(i=0;i<5;i++) {if (a==objets[i]) {test=test+1; valobjet=i;} else test=test; } if (test==0) {cout<<"Nombre 1 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); do{ cin>>op; if (op!='+' && op!='-' && op!='/' && op!='*') cout<<"Mauvais choix d'opérateur. Choix: +,-,*,/"<<endl; } while (op!='+' && op!='-' && op!='/' && op!='*'); do{ test=0; cin>>b; for(i=0;i<5;i++) {if (b==objets[i] && i!=valobjet) {test=test+1; valobjet2=i;} else test=test; } if (test==0) {cout<<"Nombre 2 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); if(op=='*') {objets[5]=a*b; } else if(op=='/') objets[5]=a/b; else if (op=='+') objets[5]=a+b; else if (op=='-') objets[5]=a-b; if (objets[5]<0) {testm=1;} if(op=='/') { if((objets[5]*!=a) {testd=1;} } if (testd==1) cout<<endl<<w2d("Le reste de votre division n'est pas égal à 0.")<<endl; if (testm==1) cout<<endl<<w2d("Le nombre calculé est négatif.")<<endl; }while(testm==1 || testd==1); if(valobjet<valobjet2) { for(i=valobjet2;i<5;i++) {objets[i]=objets[i+1];} for(i=valobjet;i<4;i++) {objets[i]=objets[i+1];} } else{ for(i=valobjet;i<5;i++) {objets[i]=objets[i+1];} for(i=valobjet2;i<4;i++) {objets[i]=objets[i+1];} } for(i=0;i<4;i++) cout<<endl<<"Ojbet"<<i+1<<":"<<objets[i]; cout<<endl<<"Le but est: "<<butreel; do{ cout<<endl<<"Voulez vous arrêter ici?0/1: "; cin>>choix; }while(choix!=0 && choix!=1); if (choix==1) { do{ test=0; cout<<endl<<"Entrez votre nombre: "; cin>>lebut; for(i=0;i<4;i++) {if(lebut==objets[i]) {test=test+1;} else test=test; } if (test==0) cout<<"Tricheur.."<<endl; }while(test==0); cout<<endl<<"Votre total est "<<lebut<<endl; } else { do{ testm=0; testd=0; cout<<endl<<"Faites votre troisième calcul (validez à chaque étape)"<<endl; do{ test=0; cin>>a; for(i=0;i<4;i++) {if (a==objets[i]) {test=test+1; valobjet=i;} else test=test; } if (test==0) {cout<<"Nombre 1 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); do{ cin>>op; if (op!='+' && op!='-' && op!='/' && op!='*') cout<<"Mauvais choix d'opérateur. Choix: +,-,*,/"<<endl; } while (op!='+' && op!='-' && op!='/' && op!='*'); do{ test=0; cin>>b; for(i=0;i<4;i++) {if (b==objets[i] && i!=valobjet) {test=test+1; valobjet2=i;} else test=test; } if (test==0) {cout<<"Nombre 2 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); if(op=='*') {objets[4]=a*b; } else if(op=='/') objets[4]=a/b; else if (op=='+') objets[4]=a+b; else if (op=='-') objets[4]=a-b; if (objets[4]<0) {testm=1;} if(op=='/') { if((objets[4]*!=a) {testd=1;} } if (testd==1) cout<<endl<<w2d("Le reste de votre division n'est pas égal à 0.")<<endl; if (testm==1) cout<<endl<<w2d("Le nombre calculé est négatif.")<<endl; }while(testm==1 || testd==1); if(valobjet<valobjet2) { for(i=valobjet2;i<4;i++) {objets[i]=objets[i+1];} for(i=valobjet;i<3;i++) {objets[i]=objets[i+1];} } else{ for(i=valobjet;i<4;i++) {objets[i]=objets[i+1];} for(i=valobjet2;i<3;i++) {objets[i]=objets[i+1];} } for(i=0;i<3;i++) cout<<endl<<"Ojbet"<<i+1<<":"<<objets[i]; cout<<endl<<"Le but est: "<<butreel; do{ cout<<endl<<"Voulez vous arrêter ici?0/1: "; cin>>choix; }while(choix!=0 && choix!=1); if (choix==1) { do{ test=0; cout<<endl<<"Entrez votre nombre: "; cin>>lebut; for(i=0;i<3;i++) {if(lebut==objets[i]) {test=test+1;} else test=test; } if (test==0) cout<<"Tricheur.."<<endl; }while(test==0); cout<<endl<<"Votre total est "<<lebut<<endl; } else { do{ testm=0; testd=0; cout<<endl<<"Faites votre quatrième calcul (validez à chaque étape)"<<endl; do{ test=0; cin>>a; for(i=0;i<3;i++) {if (a==objets[i]) {test=test+1; valobjet=i;} else test=test; } if (test==0) {cout<<"Nombre 1 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); do{ cin>>op; if (op!='+' && op!='-' && op!='/' && op!='*') cout<<"Mauvais choix d'opérateur. Choix: +,-,*,/"<<endl; } while (op!='+' && op!='-' && op!='/' && op!='*'); do{ test=0; cin>>b; for(i=0;i<3;i++) {if (b==objets[i] && i!=valobjet) {test=test+1; valobjet2=i;} else test=test; } if (test==0) {cout<<"Nombre 2 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); if(op=='*') {objets[3]=a*b; } else if(op=='/') objets[3]=a/b; else if (op=='+') objets[3]=a+b; else if (op=='-') objets[3]=a-b; if (objets[3]<0) {testm=1;} if(op=='/') { if((objets[3]*!=a) {testd=1;} } if (testd==1) cout<<endl<<w2d("Le reste de votre division n'est pas égal à 0.")<<endl; if (testm==1) cout<<endl<<w2d("Le nombre calculé est négatif.")<<endl; }while(testm==1 || testd==1); if(valobjet<valobjet2) { for(i=valobjet2;i<3;i++) {objets[i]=objets[i+1];} for(i=valobjet;i<2;i++) {objets[i]=objets[i+1];} } else{ for(i=valobjet;i<3;i++) {objets[i]=objets[i+1];} for(i=valobjet2;i<2;i++) {objets[i]=objets[i+1];} } for(i=0;i<2;i++) cout<<endl<<"Ojbet"<<i+1<<":"<<objets[i]; cout<<endl<<"Le but est: "<<butreel; do{ cout<<endl<<"Voulez vous arrêter ici?0/1: "; cin>>choix; }while(choix!=0 && choix!=1); if (choix==1) { do{ test=0; cout<<endl<<"Entrez votre nombre: "; cin>>lebut; for(i=0;i<2;i++) {if(lebut==objets[i]) {test=test+1;} else test=test; } if (test==0) cout<<"Tricheur.."<<endl; }while(test==0); cout<<endl<<"Votre total est "<<lebut<<endl; } else { do{ testm=0; testd=0; cout<<endl<<"Faites votre dernier calcul (validez a chaque etape)"<<endl; do{ test=0; cin>>a; for(i=0;i<2;i++) {if (a==objets[i]) {test=test+1; valobjet=i;} else test=test; } if (test==0) {cout<<"Nombre 1 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); do{ cin>>op; if (op!='+' && op!='-' && op!='/' && op!='*') cout<<"Mauvais choix d'operateur. Choix: +,-,*,/"<<endl; } while (op!='+' && op!='-' && op!='/' && op!='*'); do{ test=0; cin>>b; for(i=0;i<2;i++) {if (b==objets[i] && i!=valobjet) {test=test+1;} else test=test; } if (test==0) {cout<<"Nombre 2 invalide. Rechoisissez-en un:"<<endl;} } while (test==0); if(op=='*') {objets[2]=a*b; } else if(op=='/') objets[2]=a/b; else if (op=='+') objets[2]=a+b; else if (op=='-') objets[2]=a-b; if (objets[2]<0) {testm=1;} if(op=='/') { if((objets[2]*!=a) {testd=1;} } if (testd==1) cout<<endl<<w2d("Le reste de votre division n'est pas égal à 0.")<<endl; if (testm==1) cout<<endl<<w2d("Le nombre calculé est négatif.")<<endl; }while(testm==1 || testd==1); if(valobjet<valobjet2) { for(i=valobjet2;i<2;i++) {objets[i]=objets[i+1];} for(i=valobjet;i<1;i++) {objets[i]=objets[i+1];} } else{ for(i=valobjet;i<2;i++) {objets[i]=objets[i+1];} for(i=valobjet2;i<1;i++) {objets[i]=objets[i+1];} } lebut=objets[0];//Enregistre directement le dernier nombre possible dans la variable du but de l'utilisateur cout<<endl<<"Votre total est: "<<lebut<<endl;//Confirme le but de l'utilisateur } }}} } void comparaison (int lebutreel, int lebututil, int &redemarrer)//Compare le but de l'utilisateur et le but à atteindre, et valide la comparaison de manière explicite. Propose à l'utilisateur de refaire le calcul avec les mêmes nombres s'il a échoué. { if (lebutreel==lebututil)//Compare les 2 buts (de l'utilisateur, et à atteindre) {cout<<endl<<"Bravo! Le compte est bon.";//Confirme l'égalité redemarrer=0;}//Réduit la proposition de redémarrage avec les mêmes nombres à néant else {cout<<endl<<"Dommage.. le compte est mauvais. Aha..";//Confirme l'inégalité do{ cout<<endl<<"Voulez vous refaire ce calcul?0/1: ";//Propose à l'utilisateur le redémarrage du calcul avec les mêmes nombres cin>>redemarrer;//Enregistre le choix de l'utilisateur }while(redemarrer!=0 && redemarrer!=1);}//Vérifie la syntaxe de l'enregistrement } //*************************** Programme principal ****************************** int main (int argc, char *argv[]) { // Declaration locale int choixdumenu, but, bututil; tabobjets six; int i; int reboot; int redemarrage; int victoire, defaite; int possible; // Action victoire=0;//Met le nombre de victoire de l'utilisateur à 0 defaite=0;//Met le nombre de défaite de l'utilisateur à 0 do { choix_menu(choixdumenu);//Propose le menu à l'utilisateur if (choixdumenu==2) {do{ choisirbut(but);//Demande à l'utilisateur le but à atteindre creerobjets(six,possible,but);//Calcule 6 nombres if (possible==0)//Vérifie via cette variable renvoyée par la procédure, qu'on peut atteindre le but avec ces 6 nombres cout<<endl<<"Choisissez un autre but"<<endl; }while(possible==0); } else if (choixdumenu==3) {choisirobjets(six);//Demande à l'utilisateur les 6 nombres dont il disposera creerbut(six,but);//Calcule un but à partir de ces 6 nombres } else if (choixdumenu==4) {do{ genererbut(but);//Crée un but au hasard grâce à la fonction rand() (random) compris entre 100 et 999 creerobjets(six,possible,but); }while(possible==0); } do{ affichageobjetsbut (six, but);//Affiche les données (les nombres et le but) cout<<"Proposez votre solution"; traitement(six,bututil,but);//Récupère le total calculé par l'utilisateur cout<<endl<<w2d("Le but était de: ")<<but<<endl;//Rappele le but à atteindre if (but==bututil) {victoire=victoire+1;}//Incrémentation du nombre de victoire s'il ya égalité entre le but atteint par l'utilisateur et le but à atteindre else {defaite=defaite+1;}//Incrémentation du nombre de défaite s'il n'y a pas égalité entre le but atteint par l'utilisateur et le but à atteindre cout<<endl<<"Victoire";//Affiche le nombre de victoire (une if en fonction du nombre de victoire et donc de l'utilisation du pluriel) if(victoire>1) {cout<<"s: "<<victoire<<endl;} else {cout<<": "<<victoire<<endl;} cout<<"Defaite";//Même chose pour les défaites if(defaite>1) {cout<<"s: "<<defaite<<endl;} else {cout<<": "<<defaite<<endl;} comparaison (but,bututil,redemarrage);//Propose un redémarrage avec les mêmes nombres }while(redemarrage==1); do{ cout<<endl<<"Voulez vous recommencer un nouveau calcul?0/1: "<<endl;//Propose un redémarrage du jeu depuis le début cin>>reboot;//Enregistre le choix de l'utilisateur }while(reboot!=0 && reboot!=1);//Vérifie la syntaxe } while (reboot==1);//Reboucle si l'utilisateur choisit un redémarrage du jeu // retour au sytème d'exploitattion cout << endl; system("pause"); return (0); } //**************************** Fin du programme *******************************[/codebox] ps: c'est fini, j'arrête de vous souler avec mon programme. Ps2: Franfrou, comment fait-on pour utiliser le défilement en utilisant le code? Parce que c'est chiant de créer des posts aussi longs, et j'ai vu que tu me l'avait réduit grâce à un défilement sur mon 1er post.. Les stat's m'ont toujours fait marrer. Les 11 premiers profils (de ceux qui ont le + posté sur ce forum) ont 4 étoiles, le 12ème en a 3. Ce 12ème est akinos. Balise "codebox"... Citer
GandhiWallemme Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 (modifié) Mais qu'est-ce tu branles W-w-what? Mes 1 an inscrit sur le forum Bon annif'.. Balise "codebox"... Ok, merci Modifié 7 mai 2007 par nee_trimer_ue_ved Citer
Zitoun Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 Je vais (essayer de) m'acheter deux places pour real Espanyol... ça va faire mal au portefeuille Citer
Bengijol Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 Pour rester dans l'info je dirais que le Verilog c'est mieux que le VHDL. J'ai tout à fait conscience de lancer un débat stérile entre pro-verilog et pro-VHDL mais j'assume. Citer
GandhiWallemme Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 Pour rester dans l'info je dirais que le Verilog c'est mieux que le VHDL. J'ai tout à fait conscience de lancer un débat stérile entre pro-verilog et pro-VHDL mais j'assume. J'connais pas le verilog, mais le vhdl c'est assez basique comme langage (voire trop basique). Mais j'aime bien programmer dans ce langage Citer
FF Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 J'connais pas le verilog, mais le vhdl c'est assez basique comme langage (voire trop basique). Mais j'aime bien programmer dans ce langage Connais pas le verilog non plus. Citer
Bengijol Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 J'connais pas le verilog, mais le vhdl c'est assez basique comme langage (voire trop basique). Mais j'aime bien programmer dans ce langage détrompes toi jeune padawan tu n'as pas du te faire C*** à faire du VHDL-AMS, la partie AMS étant vraiment relou relou, puisque ça prend en compte des modèles hydrauliques, thermique et tout ce qu'on veut.... la partie chiante étant qu'on doit trouver les équations ce n'est plus juste du numérique.... Bon ça dépend aussi du prof et des exos proposés Enfin ça peut vite devenir le bordel quand on fait du multi-domaine meme si c'est bien intéressant quand meme. Je trouve le verilog encore plus sympa à mettre en place que le VHDL pour le design numérique, les 2 langages restent très très proches aucun doute mais je m'y plait mieux. Peut etre seulement l'effet de nouveauté je sais pas Tu entends quoi par trop basique ? de trop haut niveau ? tu préfère le C++? le Java ? L'assembleur ? (sympa mais faut etre concentré) Connais pas le verilog non plus. le Verilog est plutot utilisé dans l'induistrie et dans le système américain tandis que le VHDL a plutot une portée européenne et universitaire/recherche. Les similitudes étant assez nombreuses. Mais je ne souviens plus trop de l'historique des 2 langages et des voies différents prises...Surement des batailles entre boites commercialisant chacun son langage etc.... Mais le VHDL se révèle utilisé (à quel point en entreprise je sais pas) pour son aspect multi-domaine ce qui n'est pas possible en Verilog. Citer
GandhiWallemme Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 détrompes toi jeune padawan tu n'as pas du te faire C*** à faire du VHDL-AMS, la partie AMS étant vraiment relou relou, puisque ça prend en compte des modèles hydrauliques, thermique et tout ce qu'on veut.... la partie chiante étant qu'on doit trouver les équations ce n'est plus juste du numérique.... Bon ça dépend aussi du prof et des exos proposés Enfin ça peut vite devenir le bordel quand on fait du multi-domaine meme si c'est bien intéressant quand meme. Je trouve le verilog encore plus sympa à mettre en place que le VHDL pour le design numérique, les 2 langages restent très très proches aucun doute mais je m'y plait mieux. Peut etre seulement l'effet de nouveauté je sais pas Tu entends quoi par trop basique ? de trop haut niveau ? tu préfère le C++? le Java ? L'assembleur ? (sympa mais faut etre concentré) Je pense que je connais qu'une toute petite partie du VHDL, et à mon niveau c'est excessivement basique. Aucune possibilité de faire des boucles (on ne peut utiliser que le switch case & la if), les machines à etat simplifient beaucoup les travaux à programmer.. Je me suis toujours demandé si c'était du VHDL ou de l'AHDL que je programmai à la réflexion.. tu peux me dire les diff's si tu les connais? A mon niveau (basique), j'ai beaucoup + de liberté daction avec le c++ qu'avec le xHDL.. Citer
Hasdrubald Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 je vous demande de vous arrêter!!! stop au flood informatique!!! Citer
GandhiWallemme Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 je vous demande de vous arrêter!!! stop au flood informatique!!! if(hasdru==banned) { joie=vcc; } else joie=gnd; end if; Citer
Bengijol Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 (modifié) if(hasdru==banned) { joie=vcc; } else joie=gnd; end if; ouais mais attention à la syntaxe il faut mettre: joie:= si c'est une variable joie<= si c'est un signal joie== si c'est une quantité libre Ici ça serait plus la première solution je crois, mais bon je fais au pif aussi desfois :modeRelouOFF: Mais on a compris le but du programme, un remarque à la con des nos jours les tensions d'alimentation des circuits ont tendance à diminuer il ne faut pas tarder si tu veux un Vcc le plus haut possible Pour le AHDL je connais pas du tout mais d'après wikipédia on dirait que ça n'est qu'une variante d'un constructeur donc ça ressemble à mort. Sinon t'inquiète pas moi aussi j'en connais qu'une toute petite partie n'ayant pas eu beaucoup de TP sur le sujet...(prof étrange ). On apprend tout en stage de toutes façons. Modifié 7 mai 2007 par BenBDF Citer
Baker Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 je vous demande de vous arrêter!!! stop au flood informatique!!! Par pitié! C'est pour faire fuir les forumeurs. Citer
GandhiWallemme Posté(e) 7 mai 2007 Posté(e) 7 mai 2007 ouais mais attention à la syntaxe il faut mettre: joie:= si c'est une variable joie<= si c'est un signal joie== si c'est une quantité libre Ca marche très bien dans mon xHDL le joie=vcc; .. Par pitié! C'est pour faire fuir les forumeurs. Moh non, moh non.. généralement je ne comprends qu'une vanne sur 2 de la part d'hasdru ou de mario, à chacun sa compétence Citer
Messages recommandés
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.