Aide sur mon programme C

Fermé
Mimisop - 29 mai 2016 à 15:06
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 30 mai 2016 à 15:45
Bonjour,

J'ai un programme déja commencé sur un puissance 4 et j'ai besoin d'aide pour que quelqu'un me fasse une fonction qui trouve 4 pions alignés (horizontalement et verticalement) pour trouver le gagnant.

Voici le programme ;

#include <stdio.h>
#include <stdlib.h>

int main()
{
char j1[10], j2[10];
int choix, quitter=0;

printf("Nom du premier joueur ?\n");
scanf("%s",&j1);
printf("Nom du deuxieme joueur ?\n");
scanf("%s",&j2);

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

char Tableau[43];
int i=0;
while(quitter==0)
{
while(i<42)
{
Tableau[i]=' ';
i++;
}
printf("| 1 | 2 | 3 | 4 | 5 | 6 | 7 |\n");
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[0],Tableau[1],Tableau[2],Tableau[3],Tableau[4],Tableau[5],Tableau[6]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[7],Tableau[8],Tableau[9],Tableau[10],Tableau[11],Tableau[12],Tableau[13]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[14],Tableau[15],Tableau[16],Tableau[17],Tableau[18],Tableau[19],Tableau[20]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[21],Tableau[22],Tableau[23],Tableau[24],Tableau[25],Tableau[26],Tableau[27]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[28],Tableau[29],Tableau[30],Tableau[31],Tableau[32],Tableau[33],Tableau[34]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[35],Tableau[36],Tableau[37],Tableau[38],Tableau[39],Tableau[40],Tableau[41]);
printf("+---+---+---+---+---+---+---+\n");

printf("joueur 1, sur quelle colonne voulez-vous mettre votre jeton ?");
scanf("%d",&choix);

system("pause");

int compteur=5;
while(compteur>=0)
{
if(Tableau[compteur*7+choix-1]==' ')
{
Tableau[compteur*7+choix-1]='X';
compteur=-1;
}
else
{
compteur--;
}
}

system("cls");
printf("| 1 | 2 | 3 | 4 | 5 | 6 | 7 |\n");
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[0],Tableau[1],Tableau[2],Tableau[3],Tableau[4],Tableau[5],Tableau[6]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[7],Tableau[8],Tableau[9],Tableau[10],Tableau[11],Tableau[12],Tableau[13]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[14],Tableau[15],Tableau[16],Tableau[17],Tableau[18],Tableau[19],Tableau[20]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[21],Tableau[22],Tableau[23],Tableau[24],Tableau[25],Tableau[26],Tableau[27]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[28],Tableau[29],Tableau[30],Tableau[31],Tableau[32],Tableau[33],Tableau[34]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[35],Tableau[36],Tableau[37],Tableau[38],Tableau[39],Tableau[40],Tableau[41]);
printf("+---+---+---+---+---+---+---+\n");


system("pause");
printf("joueur 2, sur quelle colonne voulez-vous mettre votre jeton ?");
scanf("%d",&choix);

compteur=5;

while(compteur>=0)
{
if(Tableau[compteur*7+choix-1]==' ')
{
Tableau[compteur*7+choix-1]='O';
compteur=-1;
}
else
{
compteur--;
}
}

printf("| 1 | 2 | 3 | 4 | 5 | 6 | 7 |\n");
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[0],Tableau[1],Tableau[2],Tableau[3],Tableau[4],Tableau[5],Tableau[6]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[7],Tableau[8],Tableau[9],Tableau[10],Tableau[11],Tableau[12],Tableau[13]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[14],Tableau[15],Tableau[16],Tableau[17],Tableau[18],Tableau[19],Tableau[20]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[21],Tableau[22],Tableau[23],Tableau[24],Tableau[25],Tableau[26],Tableau[27]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[28],Tableau[29],Tableau[30],Tableau[31],Tableau[32],Tableau[33],Tableau[34]);
printf("+---+---+---+---+---+---+---+\n");
printf("| %c | %c | %c | %c | %c | %c | %c |\n",Tableau[35],Tableau[36],Tableau[37],Tableau[38],Tableau[39],Tableau[40],Tableau[41]);
printf("+---+---+---+---+---+---+---+\n");
}
system("pause");

return 0;
}




1 réponse

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
Modifié par Dalfab le 29/05/2016 à 20:24
Bonjour,

Tu as décidé de mettre dans une table linéaire ton tableau, pourquoi pas.
Il y a 4 pions alignés de couleur 'x' si il existe deux valeurs 'i' et 'j' telles que pour 4 valeurs successives 'k'=0,1,2,3
Tableau[7*(i+k)+j] == 'x' // alignés verticalement 0<= (i+k) <= 6
ou Tableau[7*i+(j+k)] == 'x' // horizontalement 0 <= (j+k) <= 7
ou Tableau[7*(i+k)+(j+k)] == 'x' // diagonale 0 <= (i+k) <= 6 et 0 <= (j+k) <= 7
ou Tableau[7*(i+k)+(j-k)] == 'x' // 0 <= (i+k) <= 6 et 0 <= (j-k) <= 7
0
Concretement tu pourrais rajouter ce que tu as fait a mon programme et l'envoyer ?
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101 > Mimisop
30 mai 2016 à 15:45
Je n'ai rien fait à ton programme.. C'est toi qui programme.
Avec des boucles imbriquées sur i j et k, cela devrait fonctionner
0