jockolol | J'ai réussi et sans pointeur ! Je file le code si sa peut servir.
Code :
- #include <stdio.h>
- #include <stdlib.h>
- #define NCASE 11
- int test_tableau(int tab[NCASE][NCASE]){
- int i;
- int j;
- for(i=0; i<NCASE; i++){
- for(j=0; j<NCASE; j++){
- if(tab[i][j]==0){
- return 0;
- }
-
- }
- }
- return 1;
- }
- /* Détection horizontale d'une ligne de 5 pion */
- int horizontal(int table[NCASE][NCASE], int joueur){
- int i;
- int j;
- int cpt=0;
- for(i=0; i<NCASE; i++){
- for(j=0; j<NCASE; j++){
- if(table[i][j]==joueur){
- cpt++;
-
- if(cpt==5){
- if(joueur == 1){
- table[i][j]=2;
- table[i][j-1]=2;
- table[i][j-2]=2;
- table[i][j-3]=2;
- table[i][j-4]=2;
- }
- else{
- table[i][j]=4;
- table[i][j-1]=4;
- table[i][j-2]=4;
- table[i][j-3]=4;
- table[i][j-4]=4;
- }
- printf("Vous avez gagner\n" );
- return 1;}
-
- }
- else{
- cpt=0;}
- }
- }
- return 0;
-
- }
- /* Détection verticale d'une ligne de 5 pion */
- int vertical(int table[NCASE][NCASE], int joueur){
- int i;
- int j;
- int cpt=0;
- for(i=0; i<NCASE; i++){
- for(j=0; j<NCASE; j++){
- if(cpt==5){
- if(table[j][i]==joueur){
- cpt++;
- if(joueur == 1){
- table[j][i]=2;
- table[j-1][i]=2;
- table[j-2][i]=2;
- table[j-3][i]=2;
- table[j-4][i]=2;
- }
- else{
- table[j][i]=4;
- table[j-1][i]=4;
- table[j-2][i]=4;
- table[j-3][i]=4;
- table[j-4][i]=4;
- }
- printf("Félicitation ! Joueur 1, vous avez reussi a aligner 5 pions\n" );
- return 1;}
- }
- else{
- cpt=0;}
- }
- }
- return 0;
- }
- /* Détection diagonale d'une ligne de 5 pion */
- int diagonal(int table[NCASE][NCASE], int joueur){
- int i;
- int j;
- for(i=0; i<NCASE; i++){
- for(j=0; j<NCASE; j++){
- if((table[i][j]==joueur) && (table[i+1][j+1]) && (table[i+2][j+2]) && (table[i+3][j+3]) && (table[i+4][i+4])){
- if(joueur == 1){
- table[i][j]=2;
- table[i-1][j-1]=2;
- table[i-2][j-2]=2;
- table[i-3][j-3]=2;
- table[i-4][j-4]=2;
- }
- else{
- table[i][j]=4;
- table[i-1][j-1]=4;
- table[i-2][j-2]=4;
- table[i-3][j-3]=4;
- table[i-4][j-4]=4;
- }
- printf("Félicitation ! Joueur 1, vous avez reussi a aligner 5 pions\n" );
- return 1;
- }
- }
- }
- }
- int main(int argc, char *argv[])
- {
- /* DEBUT */
- int table_rempli;
- int var;
- int var2;
- int var3;
- int i,j;
- int tab[NCASE][NCASE];
- int x_j1=0;
- int y_j1=0;
- int x_j2=0;
- int y_j2=0;
- for (i=0; i<NCASE; i++) { /*Affichage*/
- for (j=0; j<NCASE; j++) {
- tab[i][j] = 0;
- }
- }
- i=0;
- int p=0;
- while ((table_rempli = test_tableau(tab)) != 1){
- printf(" 0 1 2 3 4 5 6 7 8 9 10\n\n" ); /*Affichage des coordonnées utile pour que le joueurs tappe les coordonées */
- for (i=0; i<NCASE; i++) {
- if (i<10){
- printf("%d%d | ", p, i);
- } else {
- printf("%d | ", i);}
- /*Affichage*/
- for (j=0; j<NCASE; j++) { /*du*/
- printf("%d |", tab[i][j]); /*tableau*/
- }
- printf("\n" );
- }
- /*Demande des coordonnées au joueur 1*/
- printf("\nJoueur 1, veuillez entrez l'abscisse :\n" );
- scanf("%d", &x_j1);
- printf("\nJoueur 1, veuillez entrez l'ordonnee :\n" );
- scanf("%d", &y_j1);
- tab[x_j1][y_j1] = 1;
-
- var = horizontal(tab, 1);
- var2 = vertical(tab, 1);
- var3 = diagonal(tab, 1);
-
-
-
- /*Demande des coordonnées au joueur 1*/
- printf("\nJoueur 2, veuillez entrez l'abscisse :\n" );
- scanf("%d", &x_j2);
- printf("\nJoueur 2, veuillez entrez l'ordonnee :\n" );
- scanf("%d", &y_j2);
- tab[x_j2][y_j2] = 3;
-
- var= horizontal(tab, 3);
- var2= vertical(tab, 3);
- var3 = diagonal(tab, 3);
- }
- return EXIT_SUCCESS;
- }
|
|