Carte bataille

Description

Ce programme est un jeu de carte populaire (bataille) developez en c++, c?est un mélange entre la programmation orienté objet et la programmation réseau.
Ce jeu permet à l?utilisateur de jouer des parties sur réseau soit local ou distant, en plus d?une interface graphique Windows BGI élémentaire réalisé à l?aide de bibliothèque graphics.h.

L?objectif de ce projet est de réaliser un programme permettant de gérer une partie de carte correspondant à une bataille. Dans notre cas, une bataille est une partie simplifiée s?effectuant avec 52 cartes et se jouant à deux joueurs; chaque joueur étant muni de 26 cartes; ces 26 cartes correspondant à ce que nous appelons une main. Une partie de bataille se déroule de la façon suivante : chaque joueur tire/extrait une carte de sa main et la compare à celle tirée par l?autre joueur. Celui qui tire la carte la plus forte marque un point.
Notons que si les deux joueurs ont tiré une carte de même valeur, alors le score reste inchangé et le jeu se continue avec un nouveau tirage. Ce processus se réitère jusqu?à ce qu?un des joueurs n?ait plus de cartes.

-------------------------------------
Mostafa
Faculté des sciences du meknes

Source / Exemple :

 
#ifndef ACCUEIL_H 
#define ACCUEIL_H 

#include<windows.h> 
#include<conio.h> 
#include "bataille.h" 
#include "serveur.h" 
#include "client.h" 
#define Entrer 13 
#define Haut 72 
#define Bas  80 
#define gauche  75 
#define droit  77 
#define Esc 27 

/* 
cette class a pour but de faire une menu des choix pour ce jeux 
c'est ici ou vous pouvez choisir votre type de match local ou reseau 
et d'autre choix 


*/
class Accueil 
{ 
Paquet pq; 
public: 
void entete() 
{ 
system("cls"); 
textcolor(1,0,11); 
cout<<"Universitx82 Moulay Ismail"; 
textcolor(50,0,11); 
cout<<"Facultx82 des Sciences du Meknes"<<endl; 
textcolor(27,2,11); 
cout<<"ESSADDOUKI  Mostafa"<<endl; 
for(int i=0;i<80;i++){textcolor(i,3,2);cout<<"xcd";} 
} 
void Menu(int type,int mode,int curs) 
{ 
//type  1:local 2:reseau 
//mode 1:client 2:serveur 
//curs le position du curseur 
entete(); 
textcolor(18,5,12); 
cout<<"xc9"; 
for(int i=19;i<58;i++){textcolor(i,5,12);cout<<"xcd";} 
cout<<"xbbn"; 
textcolor(18,6,12); 
cout<<"xba"; 
textcolor(31,6,10); 
cout<<"Menu Des Choix"; 
textcolor(58,6,12); 
cout<<"xba"; 
textcolor(18,7,12); 
cout<<"xcc"; 
for(int i=19;i<58;i++){textcolor(i,7,12);cout<<"xcd";} 
cout<<"xb9"; 
textcolor(24,8,11); 
cout<<"Type de Match "; 
gotoxy(24,12); 
cout<<"Lancer le Match"; 
if(type==1) 
{ 
gotoxy(40,8); 
cout<<"Local";  
} 
else 
{ 
gotoxy(40,8); 
cout<<"Reseau";  
} 

if(mode==2) 
{ 
gotoxy(24,9); 
cout<<"Creer Une partie"; 
gotoxy(24,10); 
cout<<"Trier le paquet du Cartes"; 
gotoxy(24,11); 
cout<<"Melanger le paquet du Cartes"; 
} 
else if(mode==1) 
{ 
gotoxy(24,9); 
cout<<"Rejoindre un Joueur   "; 
} 
if(type==1) 
{ 
gotoxy(24,9); 
cout<<"                         "; 
gotoxy(24,10); 
cout<<"Trier le paquet du Cartes"; 
gotoxy(24,11); 
cout<<"Melanger le paquet du Cartes"; 
} 
textcolor(16,8,12); 
for(int i=0;i<6;i++) 
{ 
gotoxy(18,i+8); 
cout<<"xba"; 
gotoxy(58,i+8); 
cout<<"xba"; 
} 
gotoxy(18,13); 
cout<<"xc8"; 
for(int i=19;i<58;i++){textcolor(i,13,12);cout<<"xcd";} 
gotoxy(58,13); 
cout<<"xbc"; 
textcolor(22,curs+7,14); 
cout<<"x10"; 
} 
void gotoxy(int x,int y) 
{ 
COORD mycoord;  
mycoord.X= x;  
mycoord.Y= y;  
SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), mycoord ); 
} 
void textcolor(int x,int y,WORD color) 
{ 
HANDLE hConsole=GetStdHandle (STD_OUTPUT_HANDLE); 
gotoxy(x,y); 
SetConsoleTextAttribute(hConsole,color); 
} 
void saisiej() 
{ 
entete(); 
textcolor(19,5,4); 
cout<<"xc9"; 
for(int i=20;i<63;i++){textcolor(i,5,4);cout<<"xcd";} 
textcolor(38,5,4); 
cout<<"xcb"; 
textcolor(63,5,4); 
cout<<"xbb"; 
for(int i=6;i<9;i++) 
{ 
textcolor(19,i,4); 
cout<<"xba"; 
textcolor(38,i,4); 
cout<<"xba"; 
textcolor(63,i,4); 
cout<<"xba";    
} 
textcolor(19,7,4); 
cout<<"xcc"; 
for(int i=20;i<63;i++){textcolor(i,7,4);cout<<"xcd";} 
textcolor(38,7,4); 
cout<<"xce"; 
textcolor(63,7,4); 
cout<<"xb9"; 
textcolor(22,6,3); 
cout<<" Joueur 1 : "; 
textcolor(22,8,3); 
cout<<" Joueur 2 : "; 
textcolor(19,9,4); 
cout<<"xc8"; 
for(int i=20;i<63;i++){textcolor(i,9,4);cout<<"xcd";} 
textcolor(38,9,4); 
cout<<"xca"; 
textcolor(63,9,4); 
cout<<"xbc"; 
} 
void affiche();//methode pour afficher le paquet 
void jeux()//methode pour jouer en local 
{ 
Joueur j1,j2; 
Hand h1,h2; 
char nom1[20]; 
char nom2[20]; 
saisiej(); 
textcolor(39,6,3); 
cin>>nom1; 
textcolor(39,8,3); 
cin>>nom2; 
j1.setprenom(nom1); 
j2.setprenom(nom2); 
pq.split(h1,h2); 
j1.sethand(h1); 
j2.sethand(h2); 
Bataille bt(pq); 
bt.combat(j1,j2); 
getche(); 
} 
void reseauserv()//Entrer comme un serveur 
{ 
char nom[20]; 
entete(); 
textcolor(19,5,4); 
cout<<"xc9"; 
for(int i=20;i<63;i++){textcolor(i,5,4);cout<<"xcd";} 
textcolor(38,5,4); 
cout<<"xcb"; 
textcolor(63,5,4); 
cout<<"xbb"; 
for(int i=6;i<8;i++) 
{ 
textcolor(19,i,4); 
cout<<"xba"; 
textcolor(38,i,4); 
cout<<"xba"; 
textcolor(63,i,4); 
cout<<"xba";    
} 
textcolor(19,7,4); 
cout<<"xc8"; 
for(int i=20;i<63;i++){textcolor(i,7,4);cout<<"xcd";} 
textcolor(38,7,4); 
cout<<"xca"; 
textcolor(63,7,4); 
cout<<"xbc"; 
textcolor(22,6,3); 
cout<<" Votre Nom : "; 
textcolor(39,6,3); 
cin>>nom; 
Joueur j; 
j.setprenom(nom); 
system("cls"); 
entete(); 
gotoxy(24,5); 
Serveur sr(j); 
getche();  
} 
void reseauclt()//jouer comme un client 
{ 
char nom[20]; 
char adress[20]; 
entete(); 
textcolor(19,5,4); 
cout<<"xc9"; 
for(int i=20;i<63;i++){textcolor(i,5,4);cout<<"xcd";} 
textcolor(38,5,4); 
cout<<"xcb"; 
textcolor(63,5,4); 
cout<<"xbb"; 
for(int i=6;i<9;i++) 
{ 
textcolor(19,i,4); 
cout<<"xba"; 
textcolor(38,i,4); 
cout<<"xba"; 
textcolor(63,i,4); 
cout<<"xba";    
} 
textcolor(19,7,4); 
cout<<"xcc"; 
for(int i=20;i<63;i++){textcolor(i,7,4);cout<<"xcd";} 
textcolor(38,7,4); 
cout<<"xce"; 
textcolor(63,7,4); 
cout<<"xb9"; 
textcolor(22,6,3); 
cout<<"Votre Nom : "; 
textcolor(22,8,3); 
cout<<" Serveur : "; 
textcolor(19,9,4); 
cout<<"xc8"; 
for(int i=20;i<63;i++){textcolor(i,9,4);cout<<"xcd";} 
textcolor(38,9,4); 
cout<<"xca"; 
textcolor(63,9,4); 
cout<<"xbc"; 
textcolor(39,6,3); 
cin>>nom; 
textcolor(39,8,3); 
cin>>adress; 
Joueur j; 
j.setprenom(nom); 
system("cls"); 
entete(); 
gotoxy(24,5); 
Client ct(adress,j); 
getche(); 
} 
void trie()//trie le paquet de cartes 
{ 
pq.trier(); 
affiche(); 
getche(); 
} 
void melange()//Melanger le paquet de cartes 
{ 
pq.melanger(); 
affiche(); 
getche(); 
} 
void choix() 
{ 
int y=1; 
char car; 
bool sortie=true;  
int mode=2,type=1; 
do{ 
Menu(type,mode,y); 
car=getche(); 
switch(car) 
{ 
case Haut: 
{ 
if(y==3&& type==1)y-=2; 
else if(y==5&& mode==1)y-=3; 
else if(y>1)y--; 
else y=5; 
break; 
} 
case Bas: 
{ 
if(y==1 && type==1)y+=2; 
else if(y==2 && mode==1)y+=3; 
else if(y==5)y=1; 
else y++; 
break; 
} 
case Entrer: 
{ 
if(y==5) 
{ 
if(type==1)jeux(); 
else if(mode==1)reseauclt(); 
else if(mode==2)reseauserv(); 
break; 
} 
else if(y==3) 
{ 
trie(); 
} 
else if(y==4) 
{ 
melange(); 
} 
break; 
} 
case droit: 
{ 
if(y==1) 
{ 
if(type==1) 
{ 
type=2; 
mode=2; 
} 
else 
{  
type=1; 
mode=0; 
} 
} 
else if(y==2) 
{ 
if(mode==1)mode=2; 
else mode=1; 
}  
break; 
} 
case gauche: 
{ 
if(y==1) 
{ 
if(type==1) 
{ 
type=2; 
mode=2; 
} 
else 
{  
type=1; 
mode=0; 
} 
} 
else if(y==2) 
{ 
if(mode==1)mode=2; 
else mode=1; 
}  
break; 
} 
case Esc:sortie=false;exit(0); 
} 
}while(sortie); 
} 
}; 
#endif // ACCUEIL_H 
// dans le main j'instancie un objet de la classe Accueil 

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (mostafameknes)