RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Aide Puissance 4 en C

Forum : C
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ C

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
Prim0
Nouveau membre
Inscrit : 11/06/2007
Messages : 1
Message
#135791
Posté le 11/06/07 à 17:23
Salut
Voila, je suis étudiant en Mesures Physiques à toulouse et j'ai un projet informatique sur le puissance 4 en C à rendre pour mercredi 13 juin. J'ai un niveau trés trés faible en C (j'ai raté pas mal de cours :/ ) mais j'ai deja un ptit programme de fait, avec l'aides des potes et du net (surtout :) ) mais j'aimerai changer quelques petites choses, à savoir :
- jouer avec les colonnes numerotées de 1 à 8
- n'avoir rien dans le tableau au lieu des 0
- avoir des X et O qui s'affiche quand on joue, plutôt que des 1 et 2...
Voila, j' arrive pas à faire sa, sa plante à chaque fois... Je sais plus trop comment faire et si quelqu'un pouvait m'éclairer sa serai cool. Merci d'avance, voila le programme :

#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;

/*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');

}

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

rainbow
Membre du club
Chef de projet(s) :
- IA savane
- Team MoteurProg

Avatar de rainbow
Inscrit : 26/05/2006
Messages : 933
Message
#135795
Posté le 11/06/07 à 18:18
Post ton code dans les balises code ;)
Je regarderai ça durant la semaine Smiley
__________________________
............ Curtis: RTS 3D ..............
......Image
........... TeamMoteurProg...........

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6571
Message
#135804
Posté le 11/06/07 à 20:58
Salut PrimO, tu déclares ton tableau jeu ainsi :

int jeu[7][6];

Donc il n'y a forcément que des entiers dans ton tableau.
Si tu souhaites pouvoir avoir autre chose qu'un entier, par exemple un caractère qui serrait l'espace ' ' ou un chiffre, tu peux le déclarer comme étant un tableau de char (caractères):

char jeu[7][6];


Si tu souhaites afficher des X et des O à la place des nombres, soit tu fais la première méthode décrite ci-dessus et tu mets des 'X' et des 'O' à la place des nombres, soit tu continues à utiliser ton tableau d'entiers mais tu testes tes valeurs avant de les afficher :

if( jeu[i][j] == 0 ) printf( "| " ); else if( jeu[i][j] == 1 ) printf( "| X " ); else printf( "| O " );


rainbow, il dit qu'il en a besoin pour mercredi, il a des questions précises, ça sert à rien que tu lui dises que tu le regarderas durant la semaine, ça lui fait une belle jambe, il en a besoin maintenant.
A sa place comment tu réagirais ? Perso, je n'aurrais pas été patient et je me serais fait bannir par un modo.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu]Image.

Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

rainbow
Membre du club
Chef de projet(s) :
- IA savane
- Team MoteurProg

Avatar de rainbow
Inscrit : 26/05/2006
Messages : 933
Message
#135960
Posté le 13/06/07 à 13:47
Autant pour moi, je n'avais pas vu la date Smiley Cependant ...

Pac dit :
rainbow, il dit qu'il en a besoin pour mercredi, il a des questions précises, ça sert à rien que tu lui dises que tu le regarderas durant la semaine, ça lui fait une belle jambe, il en a besoin maintenant.

Le lundi et mardi font encore jusqu'à présent partie de la semaine.

aucun dit :
A sa place comment tu réagirais ? Perso, je n'aurrais pas été patient et je me serais fait bannir par un modo.

A partir du moment où on pose une question, on attend la réponse nan ? Pour l'avoir dans les temps, on la pose avant ou on se met à la merci de la vitesse de réponse des membres.

De simples remarques que j'espère que tu prendras bien même si je suis complètement coupable sur ce coup ...
__________________________
............ Curtis: RTS 3D ..............
......Image
........... TeamMoteurProg...........

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM C



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.