A voir également:
- Aide pour puissance 4
- Test puissance pc - Guide
- Puissance wifi - Guide
- Code gta 4 ps4 - Guide
- Z flip 4 s'éteint quand je le ferme - Forum Samsung
- Control center 4 - Télécharger - Divers Utilitaires
7 réponses
#include <stdio.h>
/* Début du programme principal */
int main()
{/*Déclaration des variables */
char tab[6][6];
char X='X';
char O='O';
int i,j,C1,C2,L0,L1,L2;
int L3,L4,L5,gagn1,gagn2;
char choix=0;
printf("Veuillez choisir un mode de jeux entre:\n");
printf("Deux joueurs: Joueur 1 Vs Joueur 2 -> 1");
printf("\nUn joueur: Joueur 1 Vs Ordi --------> 2\n");
choix=getchar();
switch(choix)
{
case '1' :{
char J1, J2; /*Saisie des noms des deux joueurs: */
printf("Vous avez choisi de jouer a deux joueurs");
printf("\nEntrez le nom du joueur 1: ");
scanf("%s",&J1);
printf("\nEntrez le nom du joueur 2: ");
scanf("%s",&J2);
printf("\nLe combat oppose %s Vs %s",J1,J2);
{/* Initialisation du tableau toutes les cases affichent des espaces*/
for (i = 0; i < 6; i++)
for (j = 0; j < 6; j++)
tab[i][j] = ' ';
{ /*Affichage du plateau de jeu vide*/
printf("| 0 | 1 | 2 | 3 | 4 | 5 |\n");
printf("| | | | | | |\n");
}
{
for(j=0;j<6;j++)
for(i=0;i<6;i++)
printf("| %c ",tab[i][j]);
{
printf("|\n");
printf("| | | | | | |\n");
}
printf("\n| 0 | 1 | 2 | 3 | 4 | 5 |\n\n");
}
}
do
{
/*Le 1er joueur joue*/
do
{
L0=0;L1=0;L2=0;L3=0;L4=0;L5=0;
printf("A vous de jouer %s, donner un numero de colonne (de 0 à 5):\n",J1);
scanf("%d",&C1);
/*Test sur la hauteur des colonnes, si elle sont remplies ou non*/
if((C1==0 && L0>5)|| (C1==1 && L1>5) || (C1==2 && L2>5) || (C1==3 && L3>5) || (C1==4 && L4>5) || (C1==5 && L5>5))
{
printf("\nDesole %s mais, la colonne %d est pleine, veuillez donner un numero de colone autre que %d \n",J1,C1,C1);
C1=-1;
}
}
while(C1<0 || C1>5);
/*Donne le caractère X à la case jouée par le 1er joueur*/
{
if(C1==0)
tab[C1][L0]='X';
if(C1==1)
tab[C1][L1]='X';
if(C1==2)
tab[C1][L2]='X';
if(C1==3)
tab[C1][L3]='X';
if(C1==4)
tab[C1][L4]='X';
if(C1==5)
tab[C1][L5]='X';
}
/*Vérification horizontale pour savoir si le joueur a gagné:
on balaye toutes les lignes de 0 à 5 en vérifiant 4 cases à chaque fois
Si 4 cases qui se suivent sont à X alors gagne prend pour valeur 1*/
for(i=0;i<3;i++)
{
for(j=0;j<6;j++)
{
if(tab[i][j]=='X' && tab[i+1][j]=='X' && tab[i+2][j]=='X' && tab[i+3][j]=='X')
gagn1=1;
}
}
/*Même chose mais verticalement maintenant*/
for(i=0;i<6;i++)
{
for(j=0;j<3;j++)
{
if(tab[i][j]=='X' && tab[i][j+1]=='X' && tab[i][j+2]=='X' && tab[i][j+3]=='X')
gagn1=1;
}
}
/*Et diagonale bas gauche vers haut droit*/
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(tab[i][j]=='X' && tab[i+1][j+1]=='X' && tab[i+2][j+2]=='X' && tab[i+3][j+3]=='X')
gagn1=1;
}
}
/*Même chose pour les diagonales bas droite vers haut gauche*/
for(j=0;j<3;j++)
{
for(i=5;i>=0;i--)
{
if(tab[i][j]=='X' && tab[i-1][j+1]=='X' && tab[i-2][j+2]=='X' && tab[i-3][j+3]=='X')
gagn1=1;
}
}
/* Affichage de la grille */
printf("| 0 | 1 | 2 | 3 | 4 | 5 |\n");
printf("| | | | | | |\n");
for(j=5;j>=0;j--)
{
for(i=0;i<6;i++)
{
printf("| %c ",tab[i][j]);
}
printf("|\n");
printf("| | | | | | |\n");
}
printf("\n| 0 | 1 | 2 | 3 | 4 | 5 |\n\n");
/* On incremente la hauteur d'une colonne à chaque fois que celle si est jouée:*/
if(C1==0)
tab[C1][L0++];
if(C1==1)
tab[C1][L1++];
if(C1==2)
tab[C1][L2++];
if(C1==3)
tab[C1][L3++];
if(C1==4)
tab[C1][L4++];
if(C1==5)
tab[C1][L5++];
/*Test pour savoir si le joueur 1 a gagné, si c'est le cas alors arret de la boucle*/
if(gagn1==1)
{
printf("Le gagnant est %s!!!\n",J1);
break;
}
}
/*On recommence pour le joueur 2*/
do
{
/*Le 2eme joueur joue*/
do
{
L0=0;L1=0;L2=0;L3=0;L4=0;L5=0;
printf("A vous de jouer %s, donner un numero de colonne (de 0 à 5):\n",J2);
scanf("%d",&C2);
/*Test sur la hauteur des colonnes, si elle sont remplies ou non*/
if((C2==0 && L0>5)|| (C2==1 && L1>5) || (C2==2 && L2>5) || (C2==3 && L3>5) || (C2==4 && L4>5) || (C2==5 && L5>5))
{
printf("\nDesole %s mais, la colonne %d est pleine, veuillez donner un numero de colone autre que %d \n",J2,C2,C2);
C2=-1;
}
}
while(C2<0 || C2>5);
/*Donne le caractère O à la case jouée par le 2eme joueur*/
if(C2==0)
tab[C2][L0]='O';
if(C2==1)
tab[C2][L1]='O';
if(C2==2)
tab[C2][L2]='O';
if(C2==3)
tab[C2][L3]='O';
if(C2==4)
tab[C2][L4]='O';
if(C2==5)
tab[C2][L5]='O';
/*Vérification horizontale pour savoir si le joueur a gagné:
on balaye toutes les lignes de 0 à 5 en vérifiant 4 cases à chaque fois
Si 4 cases qui se suivent sont à O alors gagn2 prend pour valeur 1*/
for(i=0;i<3;i++)
{
for(j=0;j<6;j++)
{
if(tab[i][j]=='O' && tab[i+1][j]=='O' && tab[i+2][j]=='O' && tab[i+3][j]=='O')
gagn2=1;
}
}
/*Même chose mais verticalement maintenant*/
for(i=0;i<6;i++)
{
for(j=0;j<3;j++)
{
if(tab[i][j]=='O' && tab[i][j+1]=='O' && tab[i][j+2]=='O' && tab[i][j+3]=='O')
gagn2=1;
}
}
/*Et diagonale bas gauche vers haut droit*/
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(tab[i][j]=='O' && tab[i+1][j+1]=='O' && tab[i+2][j+2]=='O' && tab[i+3][j+3]=='O')
gagn2=1;
}
}
/*Même chose pour les diagonales bas droite vers haut gauche*/
for(j=0;j<3;j++)
{
for(i=5;i>=0;i--)
{
if(tab[i][j]=='O' && tab[i-1][j+1]=='O' && tab[i-2][j+2]=='O' && tab[i-3][j+3]=='O')
gagn2=1;
}
}
/* Affichage de la grille */
printf("| 0 | 1 | 2 | 3 | 4 | 5 |\n");
printf("| | | | | | |\n");
for(j=5;j>=0;j--)
{
for(i=0;i<6;i++)
{
printf("| %c ",tab[i][j]);
}
printf("|\n");
printf("| | | | | | |\n");
}
printf("\n| 0 | 1 | 2 | 3 | 4 | 5 |\n\n");
/* On incremente la hauteur d'une colonne à chaque fois que celle si est jouée:*/
if(C2==0)
tab[C2][L0++];
if(C2==1)
tab[C2][L1++];
if(C2==2)
tab[C2][L2++];
if(C2==3)
tab[C2][L3++];
if(C2==4)
tab[C2][L4++];
if(C2==5)
tab[C2][L5++];
/*Test pour savoir si le joueur 1 a gagné, si c'est le cas alors arret de la boucle*/
if(gagn2==1)
{
printf("Le gagnant est %s!!!\n",J2);
break;
}
}
break;
}
case '2' :{
char J[20]; /*Saisie du nom du joueur: */
printf("Vous avez choisi de jouer a un joueurs");
printf("\nEntrez le nom du joueur: ");
scanf("%s",&J);
printf("\nLe combat oppose %s Vs PC",J);
break;
}
default : printf("Erreur de saisie du choix!");
}
return 0;
}
/* Début du programme principal */
int main()
{/*Déclaration des variables */
char tab[6][6];
char X='X';
char O='O';
int i,j,C1,C2,L0,L1,L2;
int L3,L4,L5,gagn1,gagn2;
char choix=0;
printf("Veuillez choisir un mode de jeux entre:\n");
printf("Deux joueurs: Joueur 1 Vs Joueur 2 -> 1");
printf("\nUn joueur: Joueur 1 Vs Ordi --------> 2\n");
choix=getchar();
switch(choix)
{
case '1' :{
char J1, J2; /*Saisie des noms des deux joueurs: */
printf("Vous avez choisi de jouer a deux joueurs");
printf("\nEntrez le nom du joueur 1: ");
scanf("%s",&J1);
printf("\nEntrez le nom du joueur 2: ");
scanf("%s",&J2);
printf("\nLe combat oppose %s Vs %s",J1,J2);
{/* Initialisation du tableau toutes les cases affichent des espaces*/
for (i = 0; i < 6; i++)
for (j = 0; j < 6; j++)
tab[i][j] = ' ';
{ /*Affichage du plateau de jeu vide*/
printf("| 0 | 1 | 2 | 3 | 4 | 5 |\n");
printf("| | | | | | |\n");
}
{
for(j=0;j<6;j++)
for(i=0;i<6;i++)
printf("| %c ",tab[i][j]);
{
printf("|\n");
printf("| | | | | | |\n");
}
printf("\n| 0 | 1 | 2 | 3 | 4 | 5 |\n\n");
}
}
do
{
/*Le 1er joueur joue*/
do
{
L0=0;L1=0;L2=0;L3=0;L4=0;L5=0;
printf("A vous de jouer %s, donner un numero de colonne (de 0 à 5):\n",J1);
scanf("%d",&C1);
/*Test sur la hauteur des colonnes, si elle sont remplies ou non*/
if((C1==0 && L0>5)|| (C1==1 && L1>5) || (C1==2 && L2>5) || (C1==3 && L3>5) || (C1==4 && L4>5) || (C1==5 && L5>5))
{
printf("\nDesole %s mais, la colonne %d est pleine, veuillez donner un numero de colone autre que %d \n",J1,C1,C1);
C1=-1;
}
}
while(C1<0 || C1>5);
/*Donne le caractère X à la case jouée par le 1er joueur*/
{
if(C1==0)
tab[C1][L0]='X';
if(C1==1)
tab[C1][L1]='X';
if(C1==2)
tab[C1][L2]='X';
if(C1==3)
tab[C1][L3]='X';
if(C1==4)
tab[C1][L4]='X';
if(C1==5)
tab[C1][L5]='X';
}
/*Vérification horizontale pour savoir si le joueur a gagné:
on balaye toutes les lignes de 0 à 5 en vérifiant 4 cases à chaque fois
Si 4 cases qui se suivent sont à X alors gagne prend pour valeur 1*/
for(i=0;i<3;i++)
{
for(j=0;j<6;j++)
{
if(tab[i][j]=='X' && tab[i+1][j]=='X' && tab[i+2][j]=='X' && tab[i+3][j]=='X')
gagn1=1;
}
}
/*Même chose mais verticalement maintenant*/
for(i=0;i<6;i++)
{
for(j=0;j<3;j++)
{
if(tab[i][j]=='X' && tab[i][j+1]=='X' && tab[i][j+2]=='X' && tab[i][j+3]=='X')
gagn1=1;
}
}
/*Et diagonale bas gauche vers haut droit*/
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(tab[i][j]=='X' && tab[i+1][j+1]=='X' && tab[i+2][j+2]=='X' && tab[i+3][j+3]=='X')
gagn1=1;
}
}
/*Même chose pour les diagonales bas droite vers haut gauche*/
for(j=0;j<3;j++)
{
for(i=5;i>=0;i--)
{
if(tab[i][j]=='X' && tab[i-1][j+1]=='X' && tab[i-2][j+2]=='X' && tab[i-3][j+3]=='X')
gagn1=1;
}
}
/* Affichage de la grille */
printf("| 0 | 1 | 2 | 3 | 4 | 5 |\n");
printf("| | | | | | |\n");
for(j=5;j>=0;j--)
{
for(i=0;i<6;i++)
{
printf("| %c ",tab[i][j]);
}
printf("|\n");
printf("| | | | | | |\n");
}
printf("\n| 0 | 1 | 2 | 3 | 4 | 5 |\n\n");
/* On incremente la hauteur d'une colonne à chaque fois que celle si est jouée:*/
if(C1==0)
tab[C1][L0++];
if(C1==1)
tab[C1][L1++];
if(C1==2)
tab[C1][L2++];
if(C1==3)
tab[C1][L3++];
if(C1==4)
tab[C1][L4++];
if(C1==5)
tab[C1][L5++];
/*Test pour savoir si le joueur 1 a gagné, si c'est le cas alors arret de la boucle*/
if(gagn1==1)
{
printf("Le gagnant est %s!!!\n",J1);
break;
}
}
/*On recommence pour le joueur 2*/
do
{
/*Le 2eme joueur joue*/
do
{
L0=0;L1=0;L2=0;L3=0;L4=0;L5=0;
printf("A vous de jouer %s, donner un numero de colonne (de 0 à 5):\n",J2);
scanf("%d",&C2);
/*Test sur la hauteur des colonnes, si elle sont remplies ou non*/
if((C2==0 && L0>5)|| (C2==1 && L1>5) || (C2==2 && L2>5) || (C2==3 && L3>5) || (C2==4 && L4>5) || (C2==5 && L5>5))
{
printf("\nDesole %s mais, la colonne %d est pleine, veuillez donner un numero de colone autre que %d \n",J2,C2,C2);
C2=-1;
}
}
while(C2<0 || C2>5);
/*Donne le caractère O à la case jouée par le 2eme joueur*/
if(C2==0)
tab[C2][L0]='O';
if(C2==1)
tab[C2][L1]='O';
if(C2==2)
tab[C2][L2]='O';
if(C2==3)
tab[C2][L3]='O';
if(C2==4)
tab[C2][L4]='O';
if(C2==5)
tab[C2][L5]='O';
/*Vérification horizontale pour savoir si le joueur a gagné:
on balaye toutes les lignes de 0 à 5 en vérifiant 4 cases à chaque fois
Si 4 cases qui se suivent sont à O alors gagn2 prend pour valeur 1*/
for(i=0;i<3;i++)
{
for(j=0;j<6;j++)
{
if(tab[i][j]=='O' && tab[i+1][j]=='O' && tab[i+2][j]=='O' && tab[i+3][j]=='O')
gagn2=1;
}
}
/*Même chose mais verticalement maintenant*/
for(i=0;i<6;i++)
{
for(j=0;j<3;j++)
{
if(tab[i][j]=='O' && tab[i][j+1]=='O' && tab[i][j+2]=='O' && tab[i][j+3]=='O')
gagn2=1;
}
}
/*Et diagonale bas gauche vers haut droit*/
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(tab[i][j]=='O' && tab[i+1][j+1]=='O' && tab[i+2][j+2]=='O' && tab[i+3][j+3]=='O')
gagn2=1;
}
}
/*Même chose pour les diagonales bas droite vers haut gauche*/
for(j=0;j<3;j++)
{
for(i=5;i>=0;i--)
{
if(tab[i][j]=='O' && tab[i-1][j+1]=='O' && tab[i-2][j+2]=='O' && tab[i-3][j+3]=='O')
gagn2=1;
}
}
/* Affichage de la grille */
printf("| 0 | 1 | 2 | 3 | 4 | 5 |\n");
printf("| | | | | | |\n");
for(j=5;j>=0;j--)
{
for(i=0;i<6;i++)
{
printf("| %c ",tab[i][j]);
}
printf("|\n");
printf("| | | | | | |\n");
}
printf("\n| 0 | 1 | 2 | 3 | 4 | 5 |\n\n");
/* On incremente la hauteur d'une colonne à chaque fois que celle si est jouée:*/
if(C2==0)
tab[C2][L0++];
if(C2==1)
tab[C2][L1++];
if(C2==2)
tab[C2][L2++];
if(C2==3)
tab[C2][L3++];
if(C2==4)
tab[C2][L4++];
if(C2==5)
tab[C2][L5++];
/*Test pour savoir si le joueur 1 a gagné, si c'est le cas alors arret de la boucle*/
if(gagn2==1)
{
printf("Le gagnant est %s!!!\n",J2);
break;
}
}
break;
}
case '2' :{
char J[20]; /*Saisie du nom du joueur: */
printf("Vous avez choisi de jouer a un joueurs");
printf("\nEntrez le nom du joueur: ");
scanf("%s",&J);
printf("\nLe combat oppose %s Vs PC",J);
break;
}
default : printf("Erreur de saisie du choix!");
}
return 0;
}
voila,que commet nombreux des developpeurs de c,quand on saisit 2 caractéres avant de passer à la saisie du second caractére faut vider le tampon avec l'instruction suivante fflush(stdin) :
Dans ton code rectifie com suit:
printf("Entrez le nom du joueur 1: ");
scanf("%c",&J1);
fflush(stdin);
printf("Entrez le nom du joueur 2: ");
scanf("%c",&J2);
Dans ton code rectifie com suit:
printf("Entrez le nom du joueur 1: ");
scanf("%c",&J1);
fflush(stdin);
printf("Entrez le nom du joueur 2: ");
scanf("%c",&J2);
Waw, j'ai pas encore vu ça en cours, il n'y a pas une autre solution? Même plus longue?
Parce que je ne pense pas que mon professeur acceptera que je sorte ce jore de chose si on ne les a pas vu en cour.
Parce que je ne pense pas que mon professeur acceptera que je sorte ce jore de chose si on ne les a pas vu en cour.
Lol
C'est bon j'ai trouvé en remplacant dans lé scanf le %c par %s pour faire une chaine de caractères.
C'est bon j'ai trouvé en remplacant dans lé scanf le %c par %s pour faire une chaine de caractères.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mais le problème c'est que quand il m'affiche les noms des joueurs il n'y a que la premières lettre du nom qui est affichée. Je ne sait pas pourquoi.
Voici ce que j'ai écrit, mais il y a une érreur mon compilateur m'affiche:
C:\Documents and Settings\Ziad MNAFAKH\Mes documents\info\projet\projet\main.c||In function `int main()':|
C:\Documents and Settings\Ziad MNAFAKH\Mes documents\info\projet\projet\main.c|149|error: expected `while' before '{' token|
C:\Documents and Settings\Ziad MNAFAKH\Mes documents\info\projet\projet\main.c|149|error: expected `(' before '{' token|
C:\Documents and Settings\Ziad MNAFAKH\Mes documents\info\projet\projet\main.c|149|error: expected primary-expression before '{' token|
C:\Documents and Settings\Ziad MNAFAKH\Mes documents\info\projet\projet\main.c|149|error: expected `)' before '{' token|
C:\Documents and Settings\Ziad MNAFAKH\Mes documents\info\projet\projet\main.c|149|error: expected `;' before '{' token|
||=== Build finished: 5 errors, 0 warnings ===|
C:\Documents and Settings\Ziad MNAFAKH\Mes documents\info\projet\projet\main.c||In function `int main()':|
C:\Documents and Settings\Ziad MNAFAKH\Mes documents\info\projet\projet\main.c|149|error: expected `while' before '{' token|
C:\Documents and Settings\Ziad MNAFAKH\Mes documents\info\projet\projet\main.c|149|error: expected `(' before '{' token|
C:\Documents and Settings\Ziad MNAFAKH\Mes documents\info\projet\projet\main.c|149|error: expected primary-expression before '{' token|
C:\Documents and Settings\Ziad MNAFAKH\Mes documents\info\projet\projet\main.c|149|error: expected `)' before '{' token|
C:\Documents and Settings\Ziad MNAFAKH\Mes documents\info\projet\projet\main.c|149|error: expected `;' before '{' token|
||=== Build finished: 5 errors, 0 warnings ===|