All pastes #748243 Raw Edit

Anonymous

public text v1 · immutable
#748243 ·published 2007-10-24 18:03 UTC
rendered paste body
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
/* Début du programme principal */
           
   main()
           
   
   
   {
   /*Déclaration des variables */
      int i,j,num;
      int h0,h1,h2,h3,h4,h5,h6,num1;
      int jeu[7][6];
      int gagne, gagne2;
      char nom1[20], nom2[20],rep,o;
   
   /*Tant que on veut jouer le programme se lance*/	
      do
      {
      /*Initialisation de certaines variables*/
         gagne=0;
         gagne2=0;
         h0=0;h1=0;h2=0;h3=0;h4=0;h5=0;h6=0;
      
      	/*Impression de la page de presentation:*/
      
         printf("\n\n\n\n");
         printf("\t\t********************************************\n");
         printf("\t\t*                                          *\n");
         printf("\t\t*     BIENVENUE DANS LE PUISSANCE 4        *\n");
         printf("\t\t*                                          *\n");
         printf("\t\t*          DE FANF ET MAXOU                *\n");
         printf("\t\t*                                          *\n");
         printf("\t\t********************************************");
      
      	/*Saisie des noms des deux joueurs: */
         printf("\n\n\n\tNom du premier joueur:\n");
         scanf("%s",nom1);
         printf("\n\n");
         printf("\n\n\tNom du deuxieme joueur:\n");
         scanf("%s",nom2);
         printf("\n\n");
      
      	/* Initialisation du tableau toutes les cases prennent la valeur 0*/
         for(i=0;i<7;i++)
         {
            for(j=0;j<6;j++)
            {
            
               jeu[i][j]=0;
            }
         }
      
      /*Affichage du plateau de jeu vide*/
         printf("| 0 | 1 | 2 | 3 | 4 | 5 | 6 |\n");
         printf("|---|---|---|---|---|---|---|\n");
         for(j=5;j>=0;j--)
         { 
            for(i=0;i<7;i++)
            {
               printf("| %d ",jeu[i][j]);
            }
            printf("|\n");
            printf("|---|---|---|---|---|---|---|\n");
         }
         printf("\n| 0 | 1 | 2 | 3 | 4 | 5 | 6 |\n\n");
      
      	/*Tant qu'un joueur n'a pas gagné le programme demande de jouer*/
         do
         {
         /*Le joueur 1 joue*/
            do
            {
               printf("A vous de jouer %s, donner un numero de colonne (de 0 à 6):\n",nom1);
               scanf("%d",&num);
               printf("\n");
            
            /*Test sur la hauteur des colonnes, si elle sont remplies ou non*/
               if((num==0 && h0>5)|| (num==1 && h1>5) || (num==2 && h2>5) || (num==3 && h3>5)  || (num==4 && h4>5) || (num==5 && h5>5) || (num==6 && h6>5))
               {
                  printf("la colonne %d est pleine, %s donner un numero de colone autre que %d \n",num,nom1,num);
                  num = -1;
               }
            }while(num<0 || num>6);
         
         /*Donne la valeur 1 à la case jouée par le joueur 1*/
            if(num==0)
               jeu[num][h0]=1;
            if(num==1)
               jeu[num][h1]=1;
            if(num==2)
               jeu[num][h2]=1;
            if(num==3)
               jeu[num][h3]=1;
            if(num==4)
               jeu[num][h4]=1;
            if(num==5)
               jeu[num][h5]=1;
            if(num==6)
               jeu[num][h6]=1;
         
         /*Vérification horizontale pour savoir si le joueur a gagné:
         on balaye toutes les lignes de 0 à 6 en vérifiant 4 cases à chaque fois
         Si 4 cases qui se suivent valent 1 alors gagne prend pour valeur 1*/            for(i=0;i<4;i++)
            {
               for(j=0;j<6;j++)
               {
                  if(jeu[i][j]==1 && jeu[i+1][j]==1 && jeu[i+2][j]==1 && jeu[i+3][j]==1)
                     gagne=1;
               }
            }
         	/*Même chose mais verticalement maintenant*/
            for(i=0;i<7;i++)
            {
               for(j=0;j<3;j++)
               {
                  if(jeu[i][j]==1 && jeu[i][j+1]==1 && jeu[i][j+2]==1 && jeu[i][j+3]==1)
                     gagne=1;
               }
            }
         
         /*Et diagonale bas gauche vers haut droit*/
            for(i=0;i<7;i++)
            {
               for(j=0;j<6;j++)
               {
                  if(jeu[i][j]==1 && jeu[i+1][j+1]==1 && jeu[i+2][j+2]==1 && jeu[i+3][j+3]==1)
                     gagne=1;
               }
            }		
         /*Même chose pour les diagonales bas droite vers haut gauche*/
            for(j=0;j<6;j++)
            {
               for(i=6;i>=0;i--)
               {
                  if(jeu[i][j]==1 && jeu[i-1][j+1]==1 && jeu[i-2][j+2]==1 && jeu[i-3][j+3]==1)
                     gagne=1;
               }
            }		
         
         	/* Affichage de la grille */
            printf("| 0 | 1 | 2 | 3 | 4 | 5 | 6 |\n");
            printf("|---|---|---|---|---|---|---|\n");
            for(j=5;j>=0;j--)
            { 
               for(i=0;i<7;i++)
               {
                  printf("| %d ",jeu[i][j]);
               }
               printf("|\n");
               printf("|---|---|---|---|---|---|---|\n");
            }
            printf("\n| 0 | 1 | 2 | 3 | 4 | 5 | 6 |\n\n");
         
         /* On incremente la hauteur d'une colonne à chaque fois que celle si est jouée:*/
            if(num==0)
               jeu[num][h0++];
            if(num==1)
               jeu[num][h1++];
            if(num==2)
               jeu[num][h2++];
            if(num==3)
               jeu[num][h3++];
            if(num==4)
               jeu[num][h4++];
            if(num==5)
               jeu[num][h5++];
            if(num==6)
               jeu[num][h6++];
         
         /*Test pour savoir si le joueur 1 a gagné, si c'est le cas alors arret de la boucle*/
            if(gagne==1)
            {
               printf("%s a gagne!!!\n bravo!!!\n",nom1);
               break;
            }
         
         
         /*On recommence pour le joueur 2*/
            do
            {
               printf("A vous de jouer %s, donner un numero de colonne (de 0 à 6):\n",nom2);
               scanf("%d",&num1);
               printf("\n");
            
               if((num1==0 && h0>5)|| (num1==1 && h1>5) || (num1==2 && h2>5) || (num1==3 && h3>5)  || (num1==4 && h4>5) || (num1==5 && h5>5) || (num1==6 && h6>5))
               {
                  printf("la colonne %d est pleine, %s donner un numero de colone autre que %d \n",num1,nom2,num1);
                  num1 = -1;
               }
            }while(num1<0 || num1>6);
         
         
            if(num1==0)
               jeu[num1][h0]=2;
            if(num1==1)
               jeu[num1][h1]=2;
            if(num1==2)
               jeu[num1][h2]=2;
            if(num1==3)
               jeu[num1][h3]=2;
            if(num1==4)
               jeu[num1][h4]=2;
            if(num1==5)
               jeu[num1][h5]=2;
            if(num1==6)
               jeu[num1][h6]=2;
         
         
            for(i=0;i<4;i++)
            {
               for(j=0;j<6;j++)
               {
                  if(jeu[i][j]==2 && jeu[i+1][j]==2 && jeu[i+2][j]==2 && jeu[i+3][j]==2)
                     gagne=2;
               }
            }
            for(i=0;i<7;i++)
            {
               for(j=0;j<3;j++)
               {
                  if(jeu[i][j]==2 && jeu[i][j+1]==2 && jeu[i][j+2]==2 && jeu[i][j+3]==2)
                     gagne=2;
               }
            }
         
            for(i=0;i<7;i++)
            {
               for(j=0;j<6;j++)
               {
                  if(jeu[i][j]==2 && jeu[i+1][j+1]==2 && jeu[i+2][j+2]==2 && jeu[i+3][j+3]==2)
                     gagne=2;
               }
            }		
         
            for(j=0;j<6;j++)
            {
               for(i=6;i>=0;i--)
               {
                  if(jeu[i][j]==2 && jeu[i-1][j+1]==2 && jeu[i-2][j+2]==2 && jeu[i-3][j+3]==2)
                     gagne=2;
               }
            }		
            printf("| 0 | 1 | 2 | 3 | 4 | 5 | 6 |\n");
            printf("|---|---|---|---|---|---|---|\n");
            for(j=5;j>=0;j--)
            { 
               for(i=0;i<7;i++)
               {
                  printf("| %d ",jeu[i][j]);
               }
               printf("|\n");
               printf("|---|---|---|---|---|---|---|\n");
            }
            printf("\n| 0 | 1 | 2 | 3 | 4 | 5 | 6 |\n\n");
         
         
         
            if(num1==0)
               jeu[num1][h0++];
            if(num1==1)
               jeu[num1][h1++];
            if(num1==2)
               jeu[num1][h2++];
            if(num1==3)
               jeu[num1][h3++];
            if(num1==4)
               jeu[num1][h4++];
            if(num1==5)
               jeu[num1][h5++];
            if(num1==6)
               jeu[num1][h6++];
         
         
            if(gagne==2)
            {
               printf("%s a gagne!!!\n bravo!!!\n",nom2);
               break;
            }
         
         
         
         
         } while(gagne!=1 || gagne2!=2);
         printf("voulez vous refaire une partie ? ('o' ou 'n')\n");
         scanf("%s",&rep);
         printf("\n\n\n\n");
      }while(rep=='o');
   
   }