Carte bataille

Soyez le premier à donner votre avis sur cette source.

Vue 17 007 fois - Téléchargée 1 822 fois

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

Ajouter un commentaire Commentaires
mostafameknes
Messages postés
8
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
25 mai 2009

5 oct. 2012 à 11:42
pour executer le code tu doit ouvrir le projet avec dev c++ et executer le projet
cs_leelie19
Messages postés
1
Date d'inscription
mardi 19 juin 2012
Statut
Membre
Dernière intervention
1 octobre 2012

1 oct. 2012 à 11:08
comment faire pour executer le code ?
mostafameknes
Messages postés
8
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
25 mai 2009

16 févr. 2009 à 16:15
ahh oui je vois mnt ou tu veux en venir , voila j'ai modifier la source et merci pour ton coms, c ma premiere source sur le site c pour ca :p
uaip
Messages postés
1466
Date d'inscription
mardi 20 février 2007
Statut
Membre
Dernière intervention
7 février 2011
1
16 févr. 2009 à 13:13
Je sais. Mais le but du zip est qu'on puisse télécharger les fichiers. Or, je n'ai ni envie de télécharger, ni envie d'ouvrir plusieurs onglets pour regarder ton code.
Il y a une rubrique "Source" pour poster un bout de la source, tu ne l'as pas fait, donc (personnellement) je ne ferai pas l'effort de juger ta source.
mostafameknes
Messages postés
8
Date d'inscription
jeudi 6 mars 2008
Statut
Membre
Dernière intervention
25 mai 2009

16 févr. 2009 à 12:20
le main.cpp est dans le .zip ; regarde bien la bas :p
Afficher les 6 commentaires

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)