Académique Documents
Professionnel Documents
Culture Documents
Connexion
Code
Recherche
Haut
C+%2F+C%2B%2B+%2F+C%2B%2B.NET+
Sources Jeux
cs_gorgonzola
DESCRIPTION
voila la source d'un jeu de dames que j'ai faites, elle est tres longue (1000 lignes) mais pas trop
complique, j'esperes que j'ai assez commente le code.
Le seul defaut est qu'on ne peut pas manger plusieurs pions à la fois comme on peut le faire en vrai
SOURCE / EXEMPLE :
#include <stdio.h>
#include <conio.c>
#define GAUCHE 75
#define DROITE 77
#define HAUT 72
#define BAS 80
#define ENTER 13
#define ESCAPE 27
#define ESPACE 32
int rapidite=5;
typedef struct
int X;
int Y;
int A;
int B;
} POS;
/*FONCTION PRINCIPALE*/
int main()
/*INITIALISATION*/
curseur.X=0;
curseur.Y=0;
curseur.A=0;
curseur.B=0;
pions.X=0;
pions.Y=0;
pions.A=0;
pions.B=0;
/*DESSIN DE L'INTERFACE*/
textcolor(15);//ECRIS EN BLANC
gotoxy(increment*4,1);
printf("%d",increment);
sleep(30);
gotoxy(1,((increment-65)*2)+3);
printf("%c",increment);
sleep(30);
textcolor(couleurs[0]);
/*DESSINE LE TABLEAU*/
tableau(2,2,increment,increment,3,1);
sleep(50);
gotoxy(44,18);
gotoxy(44,19);
gotoxy(44,20);
gotoxy(44,21);
gotoxy(44,22);
gotoxy(44,23);
gotoxy(1,24);
textcolor(couleurs[tour]);
textcolor(couleurs[3]);
dessine_menu(19,1);
gotoxy(47,6);
textcolor(couleurs[tour]);
while (sortie!=0)
gotoxy((increment2*4)+4,(increment*2)+3);
if ((damier[increment2][increment]=='\x05')||(damier[increment2][increment]=='\x01'))
textcolor(couleurs[1]);
else textcolor(couleurs[2]);
printf("%c",damier[increment2][increment]);
manger.A=0;
manger.B=0;
if ((damier[increment2][increment]=='\x01')
|| (damier[increment2][increment]=='\x05')) manger.A++;
if ((damier[increment2][increment]=='\x02')
|| (damier[increment2][increment]=='\x06')) manger.B++;
}
}
textcolor(couleurs[0]);
gotoxy(44,1);
gotoxy(44,2);
gotoxy(44,3);
if ((manger.A==0)||(manger.B==0))
choix=1;
textcolor(couleurs[3]);
dessine_menu(28,3);
if (manger.A==0) tour=2;
else tour=1;
textcolor(couleurs[tour]);
gotoxy(47,6);
gotoxy(47,7);
while (choix!=0)
gotoxy(47,8);
/*OUI*/
if (choix==1) textcolor(couleurs[0]);
else textcolor(couleurs[tour]);
printf("Oui ");
/*NON*/
if (choix==2) textcolor(couleurs[0]);
else textcolor(couleurs[tour]);
printf("Non");
touche=getch();
/*SI GAUCHE*/
if (touche==GAUCHE)
if (choix==2) choix=1;
/*SI DROITE*/
if (touche==DROITE)
if (choix==1) choix=2;
/*SI ENTER*/
if (touche==ENTER)
if (choix==1)
gotoxy(45+increment2,5+increment);
printf(" ");
}
gotoxy((curseur.X*4)+3,(curseur.Y*2)+3);
printf(" ");
gotoxy((curseur.X*4)+5,(curseur.Y*2)+3);
printf(" ");
initialise(damier);
curseur.X=0;
curseur.Y=0;
curseur.A=0;
curseur.B=0;
pions.X=0;
pions.Y=0;
pions.A=0;
pions.B=0;
coups=0;
choix=0;
tour=1;
else
rapidite=0;
choix=0;
sortie=0;
}//FIN DE LA BOUCLE
/*DESSINE LE CURSEUR*/
textcolor(couleurs[3]);
gotoxy((curseur.A*4)+3,(curseur.B*2)+3);
printf(" ");
gotoxy((curseur.A*4)+5,(curseur.B*2)+3);
printf(" ");
gotoxy((curseur.X*4)+3,(curseur.Y*2)+3);
printf("[");
gotoxy((curseur.X*4)+5,(curseur.Y*2)+3);
printf("]");
if (sortie!=0) touche=getch();
switch(touche)
/*GAUCHE*/
curseur.B=curseur.Y;
curseur.X--;
if (curseur.X==-1) curseur.X=0;
break;
/*DROITE*/
curseur.B=curseur.Y;
curseur.X++;
if (curseur.X==10) curseur.X=9;
break;
/*HAUT*/
curseur.B=curseur.Y;
curseur.Y--;
if (curseur.Y==-1) curseur.Y=0;
break;
/*BAS*/
curseur.B=curseur.Y;
curseur.Y++;
if (curseur.Y==10) curseur.Y=9;
break;
/*ENTER*/
switch (action)
case 0: action=1;
break;
case 4: action=2;
break;
case 5: action=3;
break;
break;
gotoxy(45+increment2,5+increment);
printf(" ");
textcolor(couleurs[3]);
dessine_menu(19,1);
gotoxy(47,6);
textcolor(couleurs[tour]);
action=0;
break;
gotoxy(45+increment2,5+increment);
printf(" ");
dessine_menu(30,8);
choix=0;
menu=1;
/*MENU*/
while (menu!=0)
gotoxy(47,6);
if (choix==0) textcolor(couleurs[3]);
else textcolor(couleurs[0]);
printf("Reprendre le jeu");
gotoxy(47,7);
if (choix==1) textcolor(couleurs[3]);
else textcolor(couleurs[0]);
printf("Nouvelle partie");
gotoxy(47,8);
if (choix==2) textcolor(couleurs[3]);
else textcolor(couleurs[0]);
textcolor(couleurs[0]);
printf("\xDB\xDB\xDB");
gotoxy(47,9);
if (choix==3) textcolor(couleurs[3]);
else textcolor(couleurs[0]);
textcolor(couleurs[1]);
printf("\xDB\xDB\xDB");
gotoxy(47,10);
if (choix==4) textcolor(couleurs[3]);
else textcolor(couleurs[0]);
textcolor(couleurs[2]);
printf("\xDB\xDB\xDB");
gotoxy(47,11);
if (choix==5) textcolor(couleurs[3]);
else textcolor(couleurs[0]);
textcolor(couleurs[3]);
printf("\xDB\xDB\xDB");
gotoxy(47,12);
if (choix==6) textcolor(couleurs[3]);
else textcolor(couleurs[0]);
textcolor(couleurs[0]);
printf("%-2d",rapidite);
gotoxy(47,13);
if (choix==7) textcolor(couleurs[3]);
else textcolor(couleurs[0]);
printf("Quitter");
touche=getch();
/*SI BAS*/
if (touche==BAS)
choix++;
if (choix==8) choix=0;
/*SI HAUT*/
if (touche==HAUT)
choix--;
if (choix==-1) choix=7;
if ((touche==ENTER)&&(choix==0))
menu=0;
gotoxy(45+increment2,5+increment);
printf(" ");
/*REINITIALISE TOUT*/
menu=0;
gotoxy(45+increment2,5+increment);
printf(" ");
gotoxy((curseur.X*4)+3,(curseur.Y*2)+3);
printf(" ");
gotoxy((curseur.X*4)+5,(curseur.Y*2)+3);
printf(" ");
initialise(damier);
curseur.X=0;
curseur.Y=0;
curseur.A=0;
curseur.B=0;
pions.X=0;
pions.Y=0;
pions.A=0;
pions.B=0;
coups=0;
tour=1;
if ((touche==ENTER)&&(choix==7))
{
menu=0;
sortie=0;
/*SI GAUCHE*/
if (touche==GAUCHE)
if (choix==2)
couleurs[0]--;
if (couleurs[0]==0) couleurs[0]=15;
menu=2;
if (choix==3)
couleurs[1]--;
if (couleurs[1]==0) couleurs[1]=15;
menu=2;
if (choix==4)
couleurs[2]--;
if (couleurs[2]==0) couleurs[2]=15;
menu=2;
if (choix==5)
couleurs[3]--;
if (couleurs[3]==0) couleurs[3]=15;
textcolor(couleurs[3]);
gotoxy((curseur.X*4)+3,(curseur.Y*2)+3);
printf("[");
gotoxy((curseur.X*4)+5,(curseur.Y*2)+3);
printf("]");
tableau(45,5,1,1,30,8);
/*RAPIDITE DU JEU*/
if (choix==6)
rapidite--;
if (rapidite==-1) rapidite=99;
/*SI DROITE*/
if (touche==DROITE)
if (choix==2)
couleurs[0]++;
if (couleurs[0]==16) couleurs[0]=1;
menu=2;
if (choix==3)
couleurs[1]++;
if (couleurs[1]==16) couleurs[1]=1;
menu=2;
if (choix==4)
couleurs[2]++;
if (couleurs[2]==16) couleurs[2]=1;
menu=2;
if (choix==5)
couleurs[3]++;
if (couleurs[3]==16) couleurs[3]=1;
textcolor(couleurs[3]);
gotoxy((curseur.X*4)+3,(curseur.Y*2)+3);
printf("[");
gotoxy((curseur.X*4)+5,(curseur.Y*2)+3);
printf("]");
tableau(45,5,1,1,30,8);
/*RAPIDITE DU JEU*/
if (choix==6)
rapidite++;
if (rapidite==100) rapidite=0;
if (menu==2)
textcolor(couleurs[0]);
tableau(2,2,10,10,3,1);
sleep(50);
gotoxy(44,18);
gotoxy(44,19);
gotoxy(44,21);
gotoxy(44,22);
gotoxy(44,23);
gotoxy(44,1);
textcolor(couleurs[0]);
gotoxy(44,1);
gotoxy(44,2);
gotoxy(44,3);
gotoxy((increment2*4)+4,(increment*2)+3);
if (damier[increment2][increment]=='\x05') textcolor(couleurs[1]);
else textcolor(couleurs[2]);
printf("%c",damier[increment2][increment]);
textcolor(couleurs[tour]);
gotoxy(1,24);
menu=1;
}
break;
if ((action==2)||(action==3))
textcolor(couleurs[3]);
gotoxy(45+increment2,5+increment);
printf(" ");
dessine_menu(31,1);
gotoxy(47,6);
textcolor(couleurs[tour]);
action=action+2;
/*SINON*/
if (action==2)
{
if (((curseur.X==pions.X+1)||(curseur.X==pions.X-1))
damier[pions.X][pions.Y]=' ';
if (tour==1) damier[curseur.X][curseur.Y]='\x05';
else damier[curseur.X][curseur.Y]='\x06';
dessine_menu(31,2);
gotoxy(47,6);
textcolor(couleurs[tour]);
gotoxy(47,7);
gotoxy(1,24);
textcolor(couleurs[tour]);
if (((damier[increment2][increment]=='\x05')&&(increment==9))
||((damier[increment2][increment]=='\x06')&&(increment==0)))
gotoxy(45+increment4,5+increment3);
printf(" ");
if (increment==9) damier[increment2][increment]='\x01';
if (increment==0) damier[increment2][increment]='\x02';
textcolor(couleurs[3]);
dessine_menu(20,2);
gotoxy(47,6);
if (tour==1) textcolor(couleurs[2]);
else textcolor(couleurs[1]);
gotoxy(47,7);
coups++;
action=0;
if (((curseur.X==pions.X+2)||(curseur.X==pions.X-2))
&&((curseur.Y==pions.Y+2)||(curseur.Y==pions.Y-2))
&&(action==2))
if (curseur.X==pions.X+2) pions.A=1;
else pions.A=-1;
if (curseur.Y==pions.Y+2) pions.B=1;
else pions.B=-1;
(damier[pions.X+pions.A][pions.Y+pions.B]=='\x01'))&&(tour==1))
|| (((damier[pions.X+pions.A][pions.Y+pions.B]=='\x06')||
(damier[pions.X+pions.A][pions.Y+pions.B]=='\x02'))&&(tour==2)) )
&&(action==2))
dessine_menu(21,2);
gotoxy(47,6);
textcolor(couleurs[tour]);
gotoxy(47,7);
action=4;
if (( (((damier[pions.X+pions.A][pions.Y+pions.B]=='\x05')||
(damier[pions.X+pions.A][pions.Y+pions.B]=='\x01'))&&(tour==2))
|| (((damier[pions.X+pions.A][pions.Y+pions.B]=='\x06')||
(damier[pions.X+pions.A][pions.Y+pions.B]=='\x02'))&&(tour==1)) )
&&(action==2))
damier[pions.X+pions.A][pions.Y+pions.B]=' ';
damier[curseur.X][curseur.Y]=damier[pions.X][pions.Y];
damier[pions.X][pions.Y]=' ';
dessine_menu(28,3);
gotoxy(47,6);
textcolor(couleurs[tour]);
gotoxy(47,7);
gotoxy(47,8);
printf("Tour joueur %d",(tour==1)?(tour=2):(tour=1));
gotoxy(1,24);
textcolor(couleurs[tour]);
if (((damier[increment2][increment]=='\x05')&&(increment==9))
||((damier[increment2][increment]=='\x06')&&(increment==0)))
gotoxy(45+increment4,5+increment3);
printf(" ");
if (increment==9) damier[increment2][increment]='\x01';
if (increment==0) damier[increment2][increment]='\x02';
textcolor(couleurs[3]);
dessine_menu(20,2);
gotoxy(47,6);
if (tour==1) textcolor(couleurs[2]);
else textcolor(couleurs[1]);
gotoxy(47,7);
}
}
coups++;
action=0;
else if (action==2)
dessine_menu(31,4);
gotoxy(47,6);
textcolor(couleurs[tour]);
gotoxy(47,7);
gotoxy(47,8);
gotoxy(47,9);
printf("avant !");
action=4;
if (action==3)
dame=0;
increment2=0;
if (curseur.X<pions.X) pions.A=-1;
else pions.A=1;
if (curseur.Y<pions.Y) pions.B=-1;
else pions.B=1;
if (((pions.X+(increment*pions.A))==curseur.X )&&((pions.Y+(increment*pions.B))==curseur.Y ))
dame=1;
if (( (((damier[pions.X+(increment*pions.A)][pions.Y+(increment*pions.B)]=='\x05')||
(damier[pions.X+(increment*pions.A)][pions.Y+(increment*pions.B)]=='\x01'))&&(tour==1))
|| (((damier[pions.X+(increment*pions.A)][pions.Y+(increment*pions.B)]=='\x06')||
(damier[pions.X+(increment*pions.A)][pions.Y+(increment*pions.B)]=='\x02'))&&(tour==2)) )
&&(dame==0)) dame=2;
if (( (((damier[pions.X+(increment*pions.A)][pions.Y+(increment*pions.B)]=='\x05')||
(damier[pions.X+(increment*pions.A)][pions.Y+(increment*pions.B)]=='\x01'))&&(tour==2))
|| (((damier[pions.X+(increment*pions.A)][pions.Y+(increment*pions.B)]=='\x06')||
(damier[pions.X+(increment*pions.A)][pions.Y+(increment*pions.B)]=='\x02'))&&(tour==1)) )
&&(dame==0))
increment2++;
manger.X=pions.X+(increment*pions.A);
manger.Y=pions.Y+(increment*pions.B);
if (increment2!=0) dame=0;
if (dame==1)
damier[pions.X][pions.Y]=' ';
if (tour==1) damier[curseur.X][curseur.Y]='\x01';
else damier[curseur.X][curseur.Y]='\x02';
dessine_menu(31,2);
gotoxy(47,6);
textcolor(couleurs[tour]);
gotoxy(47,7);
gotoxy(1,24);
textcolor(couleurs[tour]);
coups++;
action=0;
if (dame==2)
dessine_menu(21,2);
gotoxy(47,6);
textcolor(couleurs[tour]);
gotoxy(47,7);
action=5;
if (increment2>1)
dessine_menu(30,2);
gotoxy(47,6);
textcolor(couleurs[tour]);
printf("On ne peut pas manger");
gotoxy(47,7);
action=5;
if (increment2==1)
damier[manger.X][manger.Y]=' ';
damier[curseur.X][curseur.Y]=damier[pions.X][pions.Y];
damier[pions.X][pions.Y]=' ';
dessine_menu(28,3);
gotoxy(47,6);
textcolor(couleurs[tour]);
gotoxy(47,7);
gotoxy(47,8);
gotoxy(1,24);
textcolor(couleurs[tour]);
coups++;
action=0;
if (action==1)
{
/*EFFACE L'ANCIENNE BOITE DE DIALOGUE*/
textcolor(couleurs[3]);
gotoxy(45+increment2,5+increment);
printf(" ");
if ((damier[curseur.X][curseur.Y]==' ')&&(action==1))
dessine_menu(29,1);
gotoxy(47,6);
textcolor(couleurs[tour]);
action=0;
if ((((damier[curseur.X][curseur.Y]=='\x01')||(damier[curseur.X][curseur.Y]=='\x05'))
&&(tour==2))||
(((damier[curseur.X][curseur.Y]=='\x02')||(damier[curseur.X][curseur.Y]=='\x06'))
&&(tour==1))&&(action==1))
dessine_menu(28,1);
gotoxy(47,6);
textcolor(couleurs[tour]);
action=0;
}
/*SI CHOISIT UN DES SES PROPRES PIONS*/
if (((damier[curseur.X][curseur.Y]=='\x05')&&(tour==1))
||((damier[curseur.X][curseur.Y]=='\x06')&&(tour==2))
&&(action==1))
pions.X=curseur.X;
pions.Y=curseur.Y;
dessine_menu(29,3);
gotoxy(47,6);
textcolor(couleurs[tour]);
gotoxy(47,7);
gotoxy(47,8);
printf("de destination");
gotoxy(1,24);
textcolor(couleurs[tour]);
action=4;
if (((damier[curseur.X][curseur.Y]=='\x01')&&(tour==1))
||((damier[curseur.X][curseur.Y]=='\x02')&&(tour==2))
&&(action==1))
pions.X=curseur.X;
pions.Y=curseur.Y;
dessine_menu(29,3);
gotoxy(47,6);
textcolor(couleurs[tour]);
gotoxy(47,8);
printf("de destination");
action=5;
/*FIN*/
return 0;
int hauteur;
int largeur;
int cases_hau;
int cases_lar;
gotoxy(M,N);
printf("\xDA");
printf("\xC2");
printf("\b\xBF");
if (cases_hau==B)
gotoxy(M,N+cases_hau+(hauteur*(B+1))+1);
printf("\xC3");
printf("\xC5");
printf("\b\xB4");
gotoxy(M,N+cases_hau+(hauteur*(B+1)));
printf("\xB3");
printf("\xB3");
gotoxy(M,N+(Y*(B+1)));
printf("\xC0");
printf("\xC1");
printf("\b\xD9");
}
/*FONCTION POUR INITIALISER UN TABLEAU*/
int increment;
int divers;
divers=0;
tableau[increment][divers]='\x05';
if ((increment==9)&&(divers==0))
increment=-2;
divers=1;
if ((increment==8)&&(divers==1))
increment=-1;
divers=2;
divers=9;
tableau[increment][divers]='\x06';
if ((increment==8)&&(divers==9))
increment=-1;
divers=8;
if ((increment==9)&&(divers==8))
increment=-2;
divers=7;
int increment;
int increment2=0;
tableau(45,5,1,1,increment2,increment);
if (rapidite!=0) sleep(rapidite);
if (increment==Y)
increment=Y-1;
increment2++;
CONCLUSION :
voila !
Télécharger le projet
CODES SOURCES
voir Téléchargerdames.c
Téléchargerdames.exe
voir Téléchargerdames_header.h
A VOIR ÉGALEMENT
S'inscrire maintenant
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
RESOLUTION D'EQUATIONS (JUSQU'AU 3EME DEGRE) + CLASSE POUR MANIPULER LES NOMBRES
COMPLEXES [DJGPP] dans C / C++ / C++.NET
DESSINER A LA MAIN UNE STRUCTURE FRACTALE [DJGPP] [VGA 13H] dans C / C++ / C++.NET