Bonjour à tous,
j'ai une ou deux question à vous poser, je suis en train de faire le jeu puissance 4 en langage c sous borland C, C'est un projet que l'on doit faire pour l'école.
Alors j'ai déjà bien avancé, j'ai fait ma grille ainsi que le menu et tout le tralalala, j'ai dessiné mes pions mais c'est maintenant que je galere, c'est le coeur du jeu. Je suis débutant en Langage C et j'ai aucune idée de comment je pourrais faire pour que le jeu fonctionne.
En principe, on doit choisir une colonne et le pion se loge à l'endroit le plus bas mais jvois pas trop comment faire cela !
Je vous envoie mon code source, dites moi ce que vous en pensez...
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int menu_princ(void),joueur;
void plateau_de_jeu(int c,int l);
void pionr(int h[],int v[], int h1, int v1, int c, int l);
void pionj(int h[], int v[], int h1, int v1, int l, int c);
void aide(void);
main()
{
int choix, c=22, l=10,h1,v1,h[7],v[6];
h[0]=15;
v[0]=-8;
clrscr();
do
{
clrscr();
choix=menu_princ();
switch(choix)
{
case 1:
clrscr();
do
{
gotoxy(10,10);printf("1.<joueur contre ordinateur>");
gotoxy(10,12);printf("2.<joueur contre joueur>");
gotoxy(10,15),printf("Votre choix : ");
scanf("%i",&joueur);
}
while(joueur!=1&&joueur!=2);
if(joueur==2)
{
clrscr();
gotoxy(30,5);printf("Joueur contre joueur");
plateau_de_jeu(c,l);
gotoxy(5,45);printf("Entrez le num,ro de colonne : ");
fflush(stdin);
scanf("%i",&h1);
pionr(h,v,h1,v1,c,l);
}
else
{
clrscr();
gotoxy(30,5); printf("Joueur contre ordinateur");
plateau_de_jeu(c,l);
gotoxy(5,43); printf("vous ^tes le pion jaune");
gotoxy(5,45); printf("entrez le num,ro de colonne : ");
fflush(stdin);
scanf("%i",&h1);
pionj(h,v,h1,v1,c,l);
}
getch();
break;
case 3:
clrscr();
aide();
}
}while(choix!=4);
return 0;
}
int menu_princ(void)
{
int choix;
gotoxy(30,5); printf("####PUISSANCE 4####");
gotoxy(5,10); printf("Menu principal");
gotoxy(5,15); printf("1.Nouvelle partie");
gotoxy(5,16); printf("2.Partie sauvegard,e");
gotoxy(5,17); printf("3.Aide ");
gotoxy(5,18); printf("4.Quitter");
gotoxy(5,20); printf("Votre choix: ");
fflush(stdin);
scanf("%i",&choix);
clrscr();
return choix;
}
void pionr(int h[], int v[], int h1, int v1, int l, int c)
{
gotoxy(h[h1]+c,v[v1]+l-1); printf("%c",0xCD);
gotoxy(h[h1]+c,v[v1]+l+1); printf("%c",0xCD);
gotoxy(h[h1]+c-1,v[v1]+l); printf("%c",0xBA);
gotoxy(h[h1]+c+1,v[v1]+l); printf("%c",0xBA);
gotoxy(h[h1]+c-1,v[v1]+l-1); printf("%c",0xC9);
gotoxy(h[h1]+c-1,v[v1]+l+1); printf("%c",0xC8);
gotoxy(h[h1]+c+1,v[v1]+l+1); printf("%c",0xBC);
gotoxy(h[h1]+c+1,v[v1]+l-1); printf("%c",0xBB);
gotoxy(h[h1]+c,v[v1]+l); printf("R");
gotoxy(5,5);
getch();
}
void pionj(int h[], int v[], int h1, int v1, int l, int c)
{
gotoxy(h[h1]+c,v[v1]+l-1); printf("%c",0xCD);
gotoxy(h[h1]+c,v[v1]+l+1); printf("%c",0xCD);
gotoxy(h[h1]+c-1,v[v1]+l); printf("%c",0xBA);
gotoxy(h[h1]+c+1,v[v1]+l); printf("%c",0xBA);
gotoxy(h[h1]+c-1,v[v1]+l-1); printf("%c",0xC9);
gotoxy(h[h1]+c-1,v[v1]+l+1); printf("%c",0xC8);
gotoxy(h[h1]+c+1,v[v1]+l+1); printf("%c",0xBC);
gotoxy(h[h1]+c+1,v[v1]+l-1); printf("%c",0xBB);
gotoxy(h[h1]+c,v[v1]+l); printf("J");
gotoxy(5,5);
getch();
}
void aide(void)
{
printf(" 1 - <But du jeu>\n\n Aligner 4 pions horizontalement, verticalement ou en diagonale.\n\n 2 - <Placements des pions>\n\n Choisir un num,ro de colonne compris entre 0 et 6 pour placer votre pion.\n Celui-ci se logera dans l'emplacement le plus bas.\n\n 3 - <Fin de la partie>\n\n La partie est termin¦e si :\n\n - 4 pions ont ,t, align,s par un joueur, alors le joueur gagne la partie.\n - Toutes les cases de la grille sont remplies et que aucune ligne de 4 pions n'a ,t, ,ffectu,, il s'agit alors d'un match nul.");
getch();
}
void plateau_de_jeu(int c, int l)
{
int i, j;
gotoxy(24,9); printf("1");
gotoxy(29,9); printf("2");
gotoxy(34,9); printf("3");
gotoxy(39,9); printf("4");
gotoxy(44,9); printf("5");
gotoxy(49,9); printf("6");
gotoxy(54,9); printf("7");
for(i=0;i<30;i++) //trac, les ligne horizontales
{
for(j=0;j<40;j=j+5)
{
gotoxy(j+c,i+l); printf("%c",0xB3);
}
}
for(i=0;i<35;i=i+5) //trac, les lignes verticales
{
for(j=0;j<35;j++)
{
gotoxy(j+c,i+l); printf("%c",0xC4);
}
}
for(i=5;i<30;i=i+5) //mettre des +
{
for(j=5;j<35;j=j+5)
{
gotoxy(j+c,i+l); printf("%c",0xC5);
}
}
for(i=5;i<30;i=i+5)
{
gotoxy(c,i+l); printf("%c",0xC3);
gotoxy(35+c,i+l); printf("%c",0xB4);
}
for(i=5;i<35;i=i+5)
{
gotoxy(i+c,l); printf("%c",0xC2);
gotoxy(i+c,30+l); printf("%c",0xC1);
}
gotoxy(c,l); printf("%c",0xDA);
gotoxy(c,30+l); printf("%c",0xC0);
gotoxy(35+c,l); printf("%c",0xBF);
gotoxy(35+c,30+l); printf("%c",0xD9);
}