Guest User

Untitled

a guest
Apr 20th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 13.48 KB | None | 0 0
  1. #include "Fonctions.h"
  2.  
  3. int main()
  4. {
  5.     int lig,col;
  6.     col=0;
  7.     lig=0;
  8.     int i=0;
  9.     int j=0;
  10.     int b;
  11.     int tempScore =0 ;
  12.     int score=0, score1, score2, score3, score4, score5;
  13.     char pseudo1[100], pseudo2[100], pseudo3[100], pseudo4[100], pseudo5[100];
  14.     char box;
  15.     char tableau[15][15];
  16.     system("mode con lines=100 cols=60");
  17.     int alea;
  18.     int choix;
  19.     char choix_deplacement='2';
  20.     FILE *fp= NULL;
  21.     char pseudo[100];
  22.     char t[100];
  23.  
  24.     do
  25.     {
  26.  
  27.         system("cls");
  28.         printf("                  *******Brick letter********\n\n\n\n");
  29.         printf("                      1.Jouer\n                      2.Instructions\n                      3.Meilleurs scores\n                      4.Quitter \n");
  30.         scanf("%d", &choix);
  31.  
  32.         switch( choix )
  33.         {
  34.         case 1 :
  35.  
  36.             system("cls");
  37.             srand(time(NULL));
  38.  
  39.  
  40. // Initialisation du tableau
  41.  
  42.             for (i = 0 ; i < 15 ; i++) // i lignes
  43.             {
  44.                 for (j = 0 ; j < 15 ; j ++) // j colonnes
  45.                 {
  46.                     alea=rand()%5; // il y a 5 letrres possible associees a 5 chiffres pour le random.
  47.  
  48.  
  49.                     if (alea==0)
  50.                     {
  51.                         tableau[i][j]='R';
  52.                     }
  53.                     if (alea==1)
  54.                     {
  55.                         tableau[i][j]='J';
  56.                     }
  57.                     if (alea==2)
  58.                     {
  59.                         tableau[i][j]='V';
  60.                     }
  61.                     if (alea==3)
  62.                     {
  63.                         tableau[i][j]='B';
  64.                     }
  65.                     if (alea==4)
  66.                     {
  67.                         tableau[i][j]='N';
  68.                     }
  69.                     printf("%c  ", tableau[i][j]);
  70.                 }
  71.                 printf("\n\n");
  72.             }
  73.             // Avec l'affichage notre tableau[15][15] en memoire est de dimention [27][39] à l'écran
  74.  
  75.             couleur(tableau);
  76.             gotoligcol(lig ,col);
  77.  
  78.             //affichage du curseur
  79.  
  80.             choix_deplacement='2';
  81.  
  82.             while(choix_deplacement!='q')
  83.             {
  84.                 choix_deplacement=getch();                       // getch s'utilise comme un scanf sauf que ça affiche pas ce qu'on écrit
  85.                 box=tableau[lig/2][col/3];                       // Recuperation de la lettre
  86.  
  87.  
  88.                 switch (choix_deplacement)
  89.                 {
  90.                 case '4':                                       // Déplacement vers la gauche
  91.                 {
  92.                     if (col>0)
  93.                     {
  94.                         passMaj(tableau, box);
  95.                         gotoligcol(lig,col-3);
  96.                         col=col-3;
  97.                     }
  98.  
  99.                 }
  100.                 couleur(tableau);
  101.                 gotoligcol(lig, col);
  102.                 break;
  103.  
  104.                 case '6':                                       // Déplacement vers la droite
  105.                 {
  106.  
  107.                     if ( col<=39 )
  108.                     {
  109.                         passMaj(tableau, box);
  110.                         gotoligcol(lig,col+3);
  111.                         col=col+3;    //blingage avec le if
  112.                     }
  113.                 }
  114.                 couleur(tableau);
  115.                 gotoligcol(lig, col);
  116.                 break;
  117.  
  118.                 case '8':                                       // Déplacement vers le haut
  119.                 {
  120.                     if (lig>0)
  121.                     {
  122.                         passMaj(tableau, box);
  123.                         gotoligcol(lig-2, col);
  124.                         lig=lig-2;
  125.                     }
  126.  
  127.                 }
  128.                 couleur(tableau);
  129.                 gotoligcol(lig, col);
  130.                 break;
  131.  
  132.                 case '2':                                       // Déplacement vers le bas
  133.                 {
  134.  
  135.                     if (lig<=27)
  136.                     {
  137.                         passMaj(tableau, box);
  138.                         gotoligcol(lig+2,col);
  139.                         lig=lig+2;    // Blindage avec le if
  140.                     }
  141.                 }
  142.                 couleur(tableau);
  143.                 gotoligcol(lig, col);
  144.                 break;
  145.  
  146.  
  147.                 case ' ':
  148.                 {
  149.  
  150.                     // Selection des blocs de lettres et passage en minuscule
  151.  
  152.                     // Si on a une majuscule alors lancer transformation en min
  153.                     if( box >= 'A' && box <= 'Z')
  154.                     {
  155.                         comparaison(lig/2, col/3, tableau,box); // Passage des blocs en minuscule
  156.  
  157.                         tempScore=nbrBlocs(tableau, tolower(box)); // Fonction qui donne le nombre de bloc en repérant les min du tableau
  158.  
  159.                         printf("\n\n\n\n\n             Groupes :  %d", tempScore*(tempScore-1));
  160.  
  161.  
  162.                     }
  163.  
  164.                     // Si c'est une majuscule
  165.                     else
  166.                     {
  167.                         tempScore=nbrBlocs(tableau, tolower(box)); //fonction qui donne le nombre de bloc
  168.                         if( tempScore >=2 ) //si il y a plus de 2 BLOCS
  169.                         {
  170.                             // Suppression
  171.                             destroy(tableau, tolower(box));
  172.  
  173.                             // Descendre les lettres
  174.                             grav(tableau);
  175.  
  176.                             // Si il y un espace sur la derniere ligne du bas, alors lancer decal, pour cela parcourir la derniere ligne du tableau
  177.                             decal(tableau);
  178.  
  179.                             //ajouter à mon score final
  180.                             score=score+tempScore*(tempScore-1);
  181.                             // afficher
  182.                             printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n               Score :  %d", score);
  183.  
  184.                             // Le joueur voit q'il n'y a plus de possibilité
  185.                             // Option sortie avec entré de pseudo
  186.  
  187.                             printf("\n\nAppuyer sur q pour revenir au menu\n\nAppuyer sur P pour entrer sauvegarder votre score");
  188.                         }
  189.  
  190.                         else  passMaj(tableau, box); // Si il n'y a q'une minuscule repassage en majuscule.
  191.                     }
  192.                 }
  193.                 couleur(tableau);
  194.                 gotoligcol(lig, col);
  195.  
  196.                 break;
  197.  
  198.                 case 'P':
  199.                 {
  200.                     // Ouverture du score dans fichier
  201.                     system("cls");
  202.                     fp = fopen ("scores.txt","a");
  203.                     if (fp != NULL)
  204.                     {
  205.                         printf("Entrez votre Pseudo : ");
  206.                         fflush(stdin);
  207.                         scanf("%s", pseudo);
  208.                         //ecriture dans le ficher
  209.                         fprintf(fp, "%s %d\n" , pseudo,score);
  210.  
  211.                         fclose(fp);
  212.                         printf("\n\nAppuyer sur q pour revenir au menu");
  213.  
  214.  
  215.                     }
  216.  
  217.                     else printf("error");
  218.                 }
  219.  
  220.                 break;
  221.  
  222.                 }
  223.             }
  224.  
  225.             break;
  226.  
  227.         case 2 :   // INSTRUCTIONS
  228.         {
  229.             system("cls");
  230.             printf("\nInstructions : \n\nLe but du jeu est de faire disparaitre tous les groupes de  lettres de la grille (si  possible), avec le plus de points possible.\n\nPour vous deplacer utiliser :\n\n4 gauche \n8 haut \n6 droite \n2 bas \n\n\n\n");
  231.         }
  232.         system("pause");
  233.         break;
  234.  
  235.         case 3 : // Scores
  236.         {
  237.             system("cls"); //initialisation du pointeur des scores à NULL
  238.  
  239.             FILE* fp = NULL;
  240.  
  241.             fp = fopen("scores.txt", "r+");//ouverture du fichier des scores
  242.  
  243.  
  244.  
  245.             if (fp != NULL)
  246.  
  247.             {
  248.  
  249.                 //On lit les meilleurs scores dans le fichier scores.txt
  250.  
  251.                 fscanf(fp, "%d %d %d %d %d",&score1, &score2, &score3, &score4, &score5);
  252.  
  253.                 //On lit les pseudos associés aux meilleurs scores
  254.  
  255.                 fscanf(fp, "%s %s %s %s %s",&pseudo1, &pseudo2, &pseudo3, &pseudo4, &pseudo5);
  256.  
  257.                 //On affiche les meilleurs scores
  258.  
  259.                 printf (fp, "%s : %d\n", pseudo1, score1);
  260.  
  261.                 printf (fp, "%s : %d\n", pseudo2, score2);
  262.  
  263.                 printf (fp, "%s : %d\n", pseudo3, score3);
  264.  
  265.                 printf (fp, "%s : %d\n", pseudo4, score4);
  266.  
  267.                 printf (fp, "%s : %d\n", pseudo5, score5);
  268.  
  269.                 //on ferme les fichiers
  270.  
  271.                 fclose(fp);
  272.  
  273.  
  274.                 //Si le score est le premier meilleur score
  275.                 if(score>= score1)
  276.                 {
  277.                     //On réouvre les fichiers des pseudos et des scores en écriture seule pour ne pas supprimer le fichier et seulement le vider
  278.  
  279.                     fp = fopen("scores.txt", "w+");
  280.  
  281.                     score5 = score4;
  282.  
  283.                     score4 = score3;
  284.  
  285.                     score3 = score2;
  286.  
  287.                     score2 = score1;
  288.  
  289.                     score1 = score;
  290.  
  291.  
  292.                     //La fonction strcpy sert à copier une chaîne de caractères dans une autre
  293.  
  294.                     strcpy(pseudo5, pseudo4);
  295.  
  296.                     strcpy(pseudo4, pseudo3);
  297.  
  298.                     strcpy(pseudo3, pseudo2);
  299.  
  300.                     strcpy(pseudo2, pseudo1);
  301.  
  302.                     //On demande le pseudo que le joueur veut prendre
  303.  
  304.                     printf("Felicitations vous avez fait un nouveau record! Veuillez entrer votre pseudo.\n\n");
  305.  
  306.                     scanf("%s", pseudo1);
  307.  
  308.                     //On réécrit les nouveaux pseudos et scores dans les fichiers
  309.  
  310.                     fprintf(fp, "%d\n%d\n%d\n%d\n%d\n", score1, score2, score3, score4, score5);
  311.  
  312.                     fprintf(fp, "%s\n%s\n%s\n%s\n%s\n", pseudo1, pseudo2, pseudo3, pseudo4, pseudo5);
  313.  
  314.                     fclose(fp);
  315.  
  316.                 }
  317.  
  318.  
  319.                 //Si le score est le deuxième meilleur score
  320.  
  321.                 else if(score>=score2)
  322.                 {
  323.  
  324.                     fp = fopen("scores.txt", "w+");
  325.  
  326.                     score5 = score4;
  327.  
  328.                     score4 = score3;
  329.  
  330.                     score3 = score2;
  331.  
  332.                     score2 = score;
  333.  
  334.                     strcpy(pseudo5, pseudo4);
  335.  
  336.                     strcpy(pseudo4, pseudo3);
  337.  
  338.                     strcpy(pseudo3, pseudo2);
  339.  
  340.                     printf("Felicitations vous avez fait un nouveau record ! Veuillez entrer votre pseudo.\n\n");
  341.  
  342.                     scanf("%s", pseudo2);
  343.  
  344.                     fprintf(fp, "%d\n%d\n%d\n%d\n%d\n", score1, score2, score3, score4, score5);
  345.  
  346.                     fprintf(fp, "%s\n%s\n%s\n%s\n%s\n", pseudo1, pseudo2, pseudo3, pseudo4, pseudo5);
  347.  
  348.                     fclose(fp);
  349.  
  350.                 }
  351.  
  352.                 //Si le score est le troisième meilleur score
  353.  
  354.                 else if (score>=score3)
  355.                 {
  356.                     fp = fopen("scores.txt", "w+");
  357.  
  358.                     score5 = score4;
  359.  
  360.                     score4 = score3;
  361.  
  362.                     score3 = score;
  363.  
  364.                     strcpy(pseudo5, pseudo4);
  365.  
  366.                     strcpy(pseudo4, pseudo3);
  367.  
  368.                     printf("Felicitations, vous avez fait un nouveau record , Veuillez entrer votre pseudo.\n\n");
  369.  
  370.                     scanf("%s", pseudo3);
  371.  
  372.                     fprintf(fp, "%d\n%d\n%d\n%d\n%d\n", score1, score2, score3, score4, score5);
  373.  
  374.                     fprintf(fp, "%s\n%s\n%s\n%s\n%s\n", pseudo1, pseudo2, pseudo3, pseudo4, pseudo5);
  375.  
  376.                     fclose(fp);
  377.  
  378.                 }
  379.  
  380. //Si le score est le quatrième meilleur score
  381.  
  382.                 else if (score>=score4)
  383.                 {
  384.                     fp = fopen("scores.txt", "w+");
  385.  
  386.                     score5 = score4;
  387.  
  388.                     score4 = score;
  389.  
  390.                     strcpy(pseudo5, pseudo4);
  391.  
  392.                     printf("Felicitations vous avez fait un nouveau record! Veuillez entrer votre pseudo.\n\n");
  393.  
  394.                     scanf("%s", pseudo4);
  395.  
  396.                     fprintf(fp, "%d\n%d\n%d\n%d\n%d\n", score1, score2, score3, score4, score5);
  397.  
  398.                     fprintf(fp, "%s\n%s\n%s\n%s\n%s\n", pseudo1, pseudo2, pseudo3, pseudo4, pseudo5);
  399.  
  400.                     fclose(fp);
  401.  
  402.                 }
  403.  
  404. //Si le score est le cinquième  meilleur score
  405.                 else if (score >=score5)
  406.                 {
  407.                     fp = fopen("scores.txt", "w+");
  408.  
  409.                     score5=score;
  410.  
  411.                     printf("Felicitations, vous avez fait un noveau record ! Veuillez entrer votre pseudo.\n\n");
  412.  
  413.                     scanf("%s", pseudo5);
  414.  
  415.                     fprintf(fp, "%d\n%d\n%d\n%d\n%d\n", score1, score2, score3, score4, score5);
  416.  
  417.                     fprintf(fp, "%s\n%s\n%s\n%s\n%s\n", pseudo1, pseudo2, pseudo3, pseudo4, pseudo5);
  418.  
  419.                     fclose(fp);
  420.  
  421.                 }
  422.  
  423.                 else if (score<score5)
  424.                     printf("Vous n'etes pas dans les meilleures scores");
  425.             }
  426.         }
  427.  
  428.         system("pause");
  429.         break;
  430.  
  431.         case 4 :
  432.         {} // Sortie
  433.         break;
  434.  
  435.         default :
  436.         {
  437.             printf("la touche selectonné n'est pas attribuée, Veuiller saisir autre chose");
  438.         }
  439.  
  440.         }
  441.     }
  442.  
  443.     while(choix!=4);
  444.  
  445.  
  446.     return 0;
  447.  
  448. }
Add Comment
Please, Sign In to add comment