Je cherche comment remplir un tableau par entrée de la ligne et la colonne

Signaler
Messages postés
5
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
12 mai 2009
-
Messages postés
5
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
12 mai 2009
-
bonjour!

je suis en train de réaliser un puissance 4, qui nécessite l'entré de la ligne et de la colonne pour afficher une valeur dans le tableau, par exemple b4, ou f5.

c'est un peu stupide d'entrer la ligne car la colonnes suffit mais c'est un projet à rendre dans mon école et il veulent absolument que notre programme lise lignes et colonnes.

Si quelqun veut bien m'aider, je lui serais très très reconnaissant !
Merci

1 réponse

Messages postés
5
Date d'inscription
mardi 22 mai 2007
Statut
Membre
Dernière intervention
12 mai 2009

au fait, voici mon code :
#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#include <time.h>

// Début du programme principal

int main()

 

 

{

//Déclaration des variables

int i,j,num,num1,ligne;

int h1,h2,h3,h4,h5,h6,i1,i2,i3,i4,i5,i6;

char k;

int matchnul;

int game=1;

int rejoue;

char regles;

int quitter;

int etiquette;

char jeu[6][6];

int gagne, gagne2;

int choix;

char nom1[20], nom2[20],rep,o;

 

//Initialisation de certaines variables

regles=0;

 

 

//Affichage de la page de presentation:

while(game==1)

{rejoue=0;

gagne=0;

gagne2=0;

k='a';

i1=0;i2=0;i3=0;i4=0;i5=0;i6=0;

h1=0;h2=0;h3=0;h4=0;h5=0;h6=0;

matchnul=0;

 

 

 

system("color E0");

printf("\n\n\n\n\a");

printf("\t\t********************************************\n");

printf("\t\t* *\n");

printf("\t\t* PUISSANCE 4 *\n");

printf("\t\t* par *\n");

printf("\t\t* Leopold Michaud *\n");

printf("\t\t* *\n");

printf("\t\t********************************************\n\n\n");

printf("%c ",17);

 

 

printf("bienvenue dans le puissance 4 %c\n\nvoulez vous lire les regles ? (o/n)\n\n",16);

scanf("%c", &regles);

if (regles=='o')

{

system("cls");

printf("Le plateau de jeu est une grille verticale.\nLorsque l'on glisse un pion dans une colonne, le pion descend jusqu'en bas.\nLe jeu se joue à deux. Chaque joueur dispose de son type de pion (%c et %c).\nTour à tour les joueurs posent un pion dans une colonne.\nCelui qui gagne est celui qui aligne le premier\n au moins quatre pions de sa couleur.\nSi la grille est pleine, sans avoir aligné quatre pions, \nc'est un match null.\n\n", 1, 2);

}

 

 

printf("menu: choisissez votre mode de jeu\n\n");

printf("1) Joueurs Humains\n");

printf("\n2) Joueur vs ordi\n\n");

scanf("%d", &choix);

printf("\n\n\n");

system("cls");

switch(choix)

{

case 1 :

choix=0;

//Saisie des noms des deux joueurs:

printf("\n\n\n\tNom du premier joueur:\n\n");

scanf("%s",nom1);

printf("\n\n");

printf("\n\n\tNom du second joueur:\n\n");

scanf("%s",nom2);

system("cls");

// Initialisation du tableau: toutes les cases sont vides

for(i=0;i<6;i++)

{

for(j=0;j<6;j++)

{

jeu[i][j]=' ';

}

}

//Affichage du plateau de jeu vide

printf("\n\n | 1 | 2 | 3 | 4 | 5 | 6 |\n");

printf(" |---|---|---|---|---|---|\n");

for(j=5;j>=0;j--)

{

printf("%c",k);

k++;

for(i=0;i<6;i++)

{

printf("| %c",jeu[i][j]);

}

printf("|\n");

printf(" |---|---|---|---|---|---|\n");

}

printf("\n\n\n");

k='a';

 

//Le joueur 1 joue

while (gagne!=1 && gagne!=2)

{

matchnul++;

if(matchnul>35)

{

printf("match nul !\n\n");

printf("voulez vous rejouer?\n1) oui\n\n2) non\n\n");

scanf("%d",&rejoue);

gagne=0;

gagne2=0;

k=0;

i1=0;i2=0;i3=0;i4=0;i5=0;i6=0;

h1=0;h2=0;h3=0;h4=0;h5=0;h6=0;

system("cls");

break;

}

printf("\nA vous de jouer %s, donner un numero de colonne (de 1 à 6):\n",nom1);

scanf("%d",&num);

printf("\n");

 

 

 

//Test sur la hauteur des colonnes, si elle sont remplies ou non

if((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);

scanf("%d",&num);

}

 

//Donne la valeur 1 à la case jouée par le joueur 1

if(num==1)

jeu[num-1][h1]=1;

if(num==2)

jeu[num-1][h2]=1;

if(num==3)

jeu[num-1][h3]=1;

if(num==4)

jeu[num-1][h4]=1;

if(num==5)

jeu[num-1][h5]=1;

if(num==6)

jeu[num-1][h6]=1;

system("cls");

printf("\n");

//Vérification horizontale pour savoir si le joueur a gagné:on balaye toutes les lignes de 0 à 6 en vérifiant 4 cases à chaque foisSi 4 cases qui se suivent valent 1 alors gagne prend pour valeur 1

for(i=0;i<4;i++)

{

for(j=0;j<5;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<6;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<6;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("\n | 1 | 2 | 3 | 4 | 5 | 6 |\n");

printf(" |---|---|---|---|---|---|\n");

for(j=5;j>=0;j--)

{

printf("%c",k);

k++;

for(i=0;i<6;i++)

{

printf("| %c ",jeu[i][j]);

}

printf("|\n");

printf(" |---|---|---|---|---|---|\n");

}k='a';

// On incremente la hauteur d'une colonne à chaque fois que celle si est jouée:

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++];

if(gagne==1)

{

printf("\n\n\n\a%s gagne\a\n\n\n",nom1);

printf("voulez vous rejouer?\n1) oui\n\n2) non\n\n");

scanf("%d",&game);

 

system("cls");

break;

}

 

 

 

//meme demarche pour le joueur 2

printf("\nA vous de jouer %s, donner un numero de colonne (de 1 à 6):\n",nom2);

scanf("%d",&num1);

printf("\n");

if((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,nom1,num);

scanf("%d",&num1);

}

 

if(num1==1)

jeu[num1-1][h1]=2;

if(num1==2)

jeu[num1-1][h2]=2;

if(num1==3)

jeu[num1-1][h3]=2;

if(num1==4)

jeu[num1-1][h4]=2;

if(num1==5)

jeu[num1-1][h5]=2;

if(num1==6)

jeu[num1-1][h6]=2;

system("cls");

printf("\n");

 

 

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<6;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<6;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=5;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("\n | 1 | 2 | 3 | 4 | 5 | 6 |\n");

printf(" |---|---|---|---|---|---|\n");

for(j=5;j>=0;j--)

{

printf("%c",k);

k++;

for(i=0;i<6;i++)

{

printf("| %c ",jeu[i][j]);

}

printf("|\n");

printf(" |---|---|---|---|---|---|\n");

}k='a';

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("\n\n\n\a%s gagne\a\n\n\n",nom1);

printf("voulez vous rejouer?\n1) oui\n\n2) non\n\n");

scanf("%d",&game);

 

system("cls");

break;

}

}

 

 

 

 

 

 

 

break;

case 2:

{

int hasard ;

srand ( time(NULL) );

 

// Initialisation du tableau toutes les cases prennent la valeur 0

for(i=0;i<6;i++)

{

for(j=0;j<6;j++)

{

jeu[i][j]=' ';

}

}

//Affichage du plateau de jeu vide

printf("\n\n| 1 | 2 | 3 | 4 | 5 | 6 |\n");

printf("|---|---|---|---|---|---|\n");

for(j=5;j>=0;j--)

{

for(i=0;i<6;i++)

{

printf("| %c",jeu[i][j]);

}

printf("|\n");

printf("|---|---|---|---|---|---|\n");

}

printf("\n\n\n");

 

//Le joueur 1 joue

while (gagne!=1 && gagne!=2)

{

printf("\n\nA vous de jouer, donner un numero de colonne (de 1 à 6):\n");

scanf("%d",&num);

printf("\n");

 

 

//Test sur la hauteur des colonnes, si elle sont remplies ou non

if((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;

}

 

//Donne la valeur 1 à la case jouée par le joueur 1

if(num==1)

jeu[num-1][h1]=1;

if(num==2)

jeu[num-1][h2]=1;

if(num==3)

jeu[num-1][h3]=1;

if(num==4)

jeu[num-1][h4]=1;

if(num==5)

jeu[num-1][h5]=1;

if(num==6)

jeu[num-1][h6]=1;

system("cls");

printf("\n");

//Vérification horizontale pour savoir si le joueur a gagné:on balaye toutes les lignes de 0 à 6 en vérifiant 4 cases à chaque foisSi 4 cases qui se suivent valent 1 alors gagne prend pour valeur 1

for(i=0;i<4;i++)

{

for(j=0;j<5;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<6;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<6;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("\n| 1 | 2 | 3 | 4 | 5 | 6 |\n");

printf("|---|---|---|---|---|---|\n");

for(j=5;j>=0;j--)

{

for(i=0;i<6;i++)

{

printf("| %c ",jeu[i][j]);

}

printf("|\n");

printf("|---|---|---|---|---|---|\n");

}

// On incremente la hauteur d'une colonne à chaque fois que celle si est jouée:

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++];

if(gagne==1)

{

if(gagne==1)

printf("\n\n\n\avous gagnez\a\n\n\n");

printf("voulez vous rejouer?\n1) oui\n\n2) non\n\n");

scanf("%d",&game);

 

system("cls");

break;

 

}

 

//On remplace la valeur entrée par le joueur 2 par un nombre sélectonné aléatoirement entre 1 et 6

 

hasard= rand() % 6 ;

if(hasard==1)

jeu[hasard-1][h1]=2;

if(hasard==2)

jeu[hasard-1][h2]=2;

if(hasard==3)

jeu[hasard-1][h3]=2;

if(hasard==4)

jeu[hasard-1][h4]=2;

if(hasard==5)

jeu[hasard-1][h5]=2;

if(hasard==6)

jeu[hasard-1][h6]=2;

system("cls");

printf("\n");

 

 

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<6;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<6;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=5;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("\n| 1 | 2 | 3 | 4 | 5 | 6 |\n");

printf("|---|---|---|---|---|---|\n");

for(j=5;j>=0;j--)

{

for(i=0;i<6;i++)

{

printf("| %c ",jeu[i][j]);

}

printf("|\n");

printf("|---|---|---|---|---|---|\n");

}

if(hasard==1)

jeu[hasard][h1++];

if(hasard==2)

jeu[hasard][h2++];

if(hasard==3)

jeu[hasard][h3++];

if(hasard==4)

jeu[hasard][h4++];

if(hasard==5)

jeu[hasard][h5++];

if(hasard==6)

jeu[hasard][h6++];

if(gagne==2)

{

if(gagne==2)

{

printf("\n\n\n\avous avez perdu\a\n\n\n");

printf("voulez vous rejouer?\n1) oui\n\n2) non\n\n");

scanf("%d",&game);

 

system("cls");

break;

}

}

}

 

 

 

break ;

 

 

}

//en cas de mauvaise entrée...

default:

printf("le nombre ne correspond à aucun choix,\nchoisissez entre 1 et 2. ");

}

 

 

 

}

 

 

 

 

 

 

 

}