Mc n1c1
Messages postés13Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention17 décembre 2005
-
25 juin 2005 à 17:43
Mc n1c1
Messages postés13Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention17 décembre 2005
-
25 juin 2005 à 19:37
Voici mon programme :
/*******************************************************************************/
/** Projet de Mc N1C1 ====> Eurêka **/
/*******************************************************************************/
/*** Jeux de chiffre en projet console avec DEV C++ 4.9.9.2 ***/
/*******************************************************************************/
/**** Source mise sur le site : http://www.codes-sources.com ****/
/*******************************************************************************/
/***** Fichier main.cpp (282 lignes) et Fichier Equation.h (16 lignes) *****/
/*******************************************************************************/
/****** Programme en C++ dévellopé entre le 15/06/05 et le 19/06/05 ******/
/*******************************************************************************/
short int nombre_sorti, chiffre_valide, nombre_deja_propose, nombre_de_chiffre_propose, nombre_erreur, resultat_trouve;}
char rejouer, nombre_propose,chiffre_enregistre[66],resultat_a_trouver[LONGUEUR_RESULTAT],chiffre_propose);
FILE* fichier_Equation;
int main (void) // Départ de la fonction principale
{
char choix; // Ouverture de la classe 'choix'
printf ("Que voulez vous faire ? jouer (tapez 1)\n"); // Affiche la phrase
printf ("\t\t\tvoir les regles (tapez 2) "); // Affiche la phrase
if (choix == 50) // Si le choix est 2 :
void regles(void); // on ouvre la classe 'regles' (ligne 53)
do // Le do exécute son bloc au moins une fois, et l'exécute encore si la condition du while
{
const char* system ("cls"); // Efface ce qu'il y a à l'écran
tirage_du_calcul_a_trouver(); // Si le choix est autre que 2, ouverture de la classe 'tirage_du_calcul_a_trouver'(ligne 67)
printf ("\n\n\nle calcul %c trouver est : %s\n\n"); // Affiche la phrase
while (nombre_erreur < 4 && resultat_trouve == 0) // Si le nombre d'erreur est inférieur à 4, le résultat est trouvé
{
saisie_du_chiffre_propose();
calcul_du_nombre_d_erreur();
verification_du_resultat();
resultat_a_trouver();
calcul_propose();
}
affichage_fin();
reinitialisation();
pour_rejouer();
}
while (rejouer == 'o'); // Définit l'action de quitter par la saisie de la lettre 'o': Si on saisie 'o' le programme quitte
}
void regles (void) // Ouverture de la classe 'regles'
{
const char* system ("cls"); // Efface ce qu'il y a à l'écran
printf ("Cette page restera affich%c que 30 secondes.\n",130); // Affiche la phrase
printf ("Ce programme simule un petit jeu de chiffre o%c il faut trouver le r%csultat des calculs propos%cs,\n",151,130,130); // Affiche la phrase
printf ("pour cela, vous proposez des chiffres.\n\n"); // Affiche la phrase
printf ("Vous avez le droit %c 3 erreurs maximum.\n\n",133); // Affiche la phrase
printf ("Attention, les virgules sont ""."" et pas "","); // Affiche la phrase
Sleep (30000); // La page restera la même pendant 20 secondes
}
void tirage_du_calcul_a_trouver() // Ouverture de la classe 'tirage_du_calcul_a_trouver'
{
long i,j=0;
FILE* fichier_Equation; // Ouverture du fichier Equation
;void __cdecl srand(unsigned int); // Initialise le tirage aléatoire
_CRTIMP int __cdecl rand (void); // Tire un nombre compris entre MIN et MAX
for (i=0;i<nombre_sorti;i++)
;char calcul_propose; //copie d'un calcul du fichier dans calcul_a_trouver
for (i=1;i<calcul_propose-1;i++)
{
if (j == 0)
{
if (resultat_a_trouver[i] != 10) //si la fin de la ligne n'est pas atteinte
{
if (resultat_a_trouver[i] == 48) // si le caractere est un '0'
resultat_a_trouver[i] = -123; // le caractere devient un 'à'
if (resultat_a_trouver[i] == 49) // si le caractere est un '1'
resultat_a_trouver[i] = -126; // le caractere devient un 'é'
if(resultat_a_trouver[i] == 50) // si le caractere est un '2'
resultat_a_trouver[i] = -118; // le caractere devient un 'è'
if(resultat_a_trouver[i] == 51) // si le caractere est un '3'
resultat_a_trouver[i] = -120; // le caractere devient un 'ê'
if(resultat_a_trouver[i] == 52) // si le caractere est un '4'
resultat_a_trouver[i] = -116; // le caractere devient un 'î'
if(calcul_a_trouver[i] == 53) // si le caractere est un '5'
calcul_a_trouver[i] = -109; // le caractere devient un 'ô'
if(calcul_a_trouver[i] == 54) // si le caractere est un '6'
calcul_a_trouver[i] = -106; // le caractere devient un 'û'
if(calcul_a_trouver[i] == 55) // si le caractere est un '7'
calcul_a_trouver[i] = -105; // le caractere devient un 'ù'
}
else // Sinon
j = 1; // La fin de la ligne est atteinte
}
}
j = 0;
for (i=0;i<LONGUEUR_CALCUL;i++)
calcul_propose[i] = calcul_a_trouver[i]; // Copie de calcul_a_trouver dans calcul_propose
for (i=1;i<LONGUEUR_CALCUL-1;i++)
{
if (j == 0)
{
if (calcul_propose[i] != 10) // Si la fin de la ligne n'est pas atteinte
{
if(calcul_propose[i] != 32 && calcul_propose[i] != 44 && calcul_propose[i] != 39)
calcul_propose[i] = '-'; // Remplace les chiffres par des tirets, sauf la 1ère et la dernière
}
else // Sinon
j = 1;
}
}
}
void saisie_du_chiffre_propose() // Ouverture de la classe 'saisie_du_chiffre_propose'
{
short int chiffre; // Declaration de la variable 'Chiffre'
do {
printf ("\rProposer un r%csultat : ",126); //affiche la phrase
chiffre_propose = getche(); //met le caractère saisi dans resultat_propose
rewind(stdin); //vide le buffer
}
while (chiffre = test_tesultat()); // Ouverture de la classe 'test_resultat' quand on rentre un chiffre
if ( strchr (chiffre_enregistre,chiffre_propose) == NULL)
{
chiffre_enregistre[nombre_chiffre_propose] = chiffre_propose;
nombre_chiffre_propose = nombre_chiffre_propose + 1;
chiffre_deja_propose = 0;
}
else // Sinon
chiffre_deja_propose = 1; // Il y a un chiffre qui a été proposé
} // Fermeture de la variable 'chiffre' dans la classe 'saisie_du_chiffre_propose'
short int test_chiffre() // Déclaration de la variable 'test_chiffre'
{
short int chiffre; //Declaration de la variable 'chiffre' dans la variable 'test_chiffre'
{ // Ouverture de la déclaration
int chiffre_autorise[ 198 ]; // il y a 198 chiffre autorisez
bool has_done_positif = false; // indique si les chiffres positifs ont déjà été insére
bool has_done_negatif = false; // indique si les chiffres négatifs ont déjà été inséré
for( int i = 0; i < 100; ++i ) // Boucle permettant d'ajouter tous les nombres autorisés.
{
if( !has_done_positif ) // Si la boucle n'a pas encore ajouté les positifs
chiffre_autorise[ i ] = i; // Si elle l'a déjà fait
{
else if( has_done_positif ) // Alors il faut introduire un négatif
chiffre_autorise[ i ] = -i;
if( i == 99 )
has_done_negatif = true;
}
if( has_done_negatif )
break;
if( i == 99 )
{
has_done_positif = true;
i = 0;
} // Fermeture de la variable 'chiffre'
} // Fermeture de la classe 'saisie_du_chiffre_propose'
void recherche_du_chiffre_dans_le_resultat() // Classe 'recherche_du_chiffre_dans_le_resultat'
{ // Ouverture de la classe 'recherche_du_chiffre_dans_le_resultat'
long i;
chiffre_valide = 0;
for (i=1;i<LONGUEUR_CALCUL-1;i++)
{
if (chiffre_propose == resultat_a_trouver[i]) // Test entre le chiffre proposé et le résultat à trouver
{
chiffre_valide = 1; // si le test est vérifié, chiffre_valide est à 1
calcul_propose[i] = chiffre_propose; // la lettre remplacera le tiret correspondant
}
}
} // Fermeture de la classe 'recherche_du_chiffre_dans_le_resultat'
void calcul_du_nombre_d_erreur() // Classe 'calcul_du_nombre_d_erreur'
{ // Ouverture de la classe 'calcul_du_nombre_d_erreur' if (chiffre_valide 0 && chiffre_deja_propose 0) //test si la lettre proposée n'était pas dans le proverbe à trouver
nombre_erreur = nombre_erreur + 1; //si le test est vérifié, nombre_erreur est incrémenté
} // Fermeture de la classe 'calcul_du_nombre_d_erreur'
void verification_du_calcul() // Classe 'verification_du_calcul'
{ // Ouverture de la classe 'verification_du_calcul'
long i;
for (i=0;i<LONGUEUR_CALCUL;i++)
{
if (calcul_propose[i] == resultat_a_trouver[i]) // Test chaque chiffre du calcul proposé et du resultat a trouvé
calcul_trouve = resultat_trouve + 1; // +1 dans calcul trouvé : un resultat trouvé de plus
}
if (resultat_a_trouve == LONGUEUR_RESULTAT) // Test si resultat_trouve est égal à la longueur du résultat
resultat_trouve = 1; // Si le test est vérifié, resultat_trouve est mit à 1
else // Sinon
calcul_trouve = 0; // (Si le test n'est pas vérifié) resultat_trouve est mit à 0
} // Fermeture de la classe 'verification_du_calcul'
void affichage_resultat_pas_trouve()
{
int i;
const char* system ("cls"); // Efface ce qu'il y a à l'écran
if (nombre_erreur < 4 && resultat_trouve == 0) //test sur le nombre d'erreur et si le proverbe a été trouvé*/
{
printf ("chiffre d%cj%c propos%c : ",126,123,126); // Affiche la phrase
for (i=0;i<nombre_chiffre_propose;i++)
{
if (i != 0)
printf (", "); // Affichage de la phrase
printf ("%c",chiffre_enregistre[i]);
}
printf ("\n\n\nle calcul %c trouver est : %s\n\n",123,calcul_propose); // Affichage de la phrase
printf ("le nombre d'erreur est de : %d\n\n",nombre_erreur); // Affichage de la phrase
}
} // Fermeture de la classe 'affichage_resultat_pas_trouve'
void affichage_fin() // Ouverture de la classe 'affichage_fin'
{
const char* system ("cls"); // Efface ce qu'il y a à l'écran
if (resultat_trouve == 0) // Si il y a 0 résultat de trouvé:
{
printf ("\nVous avez perdu, le r%csultat qu'il fallait trouver %ctait :\n\n",126,126); // Affiche la phrase
printf ("%s\n",resultat_a_trouver);
}
if (resultat_trouve == 1) /*si le proverbe est trouvé*/
{
printf ("\nbravo, vous avez trouv%c le r%csultat qui %ctait :\n\n",126,126,126); /*affiche la phrase*/
printf ("%s\n",resultat_a_trouver);
}
}
void reinitialisation() // Ouverture de la classe 'reinitialisation'
{
short int i;
nombre_erreur = 0; // Met nombre_erreur à 0
resultat_trouve = 0; // Met resultat_trouve à 0
nombre_chiffre_propose = 0; // Met nombre_chiffre_propose à 0
for (i=0;i<6;i++) // Boucle permettant d'ajouter tous les nombres autorisés.
chiffre_enregistre[i] = 198; // Redéfinis chiffre_enregistré à 198
}
void pour_rejouer() // Ouverture de la classe 'pour_rejouer'
{
printf ("\nVoulez-vous rejouez ? "); // Affiche la phrase
short int rejouer = getch(); // Met le caractère saisi dans rejouer
rewind (stdin); // Vide le buffer
const char* system ("cls"); // Efface ce qu'il y a à l'écran
}
}
}
Je veux compiler avec Dev C++ 4.9.9.2 et il m'affiche :
Mc n1c1
Messages postés13Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention17 décembre 2005 25 juin 2005 à 19:37
Et alors je le compile avec DEV C++ et sa devrait marcher quand a ton explication sur le '}' je sais qu'il en manque un ou qu'il y en a un en trop mais je ne sais pas où. C sa mon problème