Académique Documents
Professionnel Documents
Culture Documents
Projet Finaaaaal Poo
Projet Finaaaaal Poo
Rapport
YOUSSEF ELHBOUSSI
▪ PLAN :
Introduction
Etude théorique
Conception
Code et résultat
Conclusion
▪ Application de Gestion de Tournoi d'Échecs.
Introduction
La première étape consiste à comprendre les besoins des parties prenantes. Cela
implique des entretiens avec les organisateurs de tournois, les joueurs d'échecs et les
spectateurs pour identifier les fonctionnalités essentielles et les aspects critiques de
l'expérience utilisateur.
2. Conception de l'Architecture
La sécurité des données est primordiale pour protéger les informations personnelles
des joueurs, les résultats des parties et les décisions arbitrales. L'application devrait
implémenter des mesures de sécurité telles que le chiffrement des données, la
gestion des accès et la protection contre les attaques de sécurité.
Une interface utilisateur conviviale est essentielle pour assurer une adoption réussie
de l'application. Les joueurs, les organisateurs et les spectateurs doivent pouvoir
naviguer facilement dans l'application, effectuer des actions telles que l'inscription
aux tournois, la réservation de places et la consultation des résultats des parties.
5. Fonctionnalités Avancées
En plus des fonctionnalités de base énumérées dans le cahier des charges, des
fonctionnalités avancées peuvent améliorer l'efficacité et l'expérience utilisateur. Cela
pourrait inclure des notifications en temps réel des mises à jour du tournoi, des
analyses de parties intégrées et des outils de communication pour les joueurs et les
organisateurs.
6. Tests et Validation
Conclusion
Conception
Le règlement du jeu
1. Disposition initiale des pièces: Les pièces sont placées sur la rangée la plus
proche de chaque joueur de la manière suivante : de gauche à droite, tour,
cavalier, fou, dame, roi, fou, cavalier, tour. Les pions sont placés sur la rangée
juste devant ces pièces. Les joueurs ont une disposition identique, mais miroir
l'un de l'autre.
3. Capture : Une pièce est capturée lorsqu'elle est déplacée sur une case
occupée par une pièce adverse. La pièce capturée est retirée du plateau.
6. Échec et échec et mat: Un joueur est en échec lorsque son roi est menacé
par une pièce adverse. Si le roi est en échec et qu'il n'y a aucun moyen de le
protéger, c'est l'échec et mat, ce qui signifie que le jeu est terminé et que le
joueur en échec et mat perd la partie.
7. Pat : Un joueur est en pat lorsque son roi n'est pas en échec, mais il n'a
aucun coup légal possible. Dans ce cas, la partie est nulle.
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Joueur {
private:
string nom;
int id;
public:
Joueur(string n, int e) : nom(n), id(e) {}
string getNom() const { return nom; }
int getid() const { return id; }
};
class Spectateur {
private:
int id;
string nom;
public:
Spectateur(string n) : nom(n), id(0) {}
int getId() const { return id; }
string getNom() const { return nom; }
};
class Salle {
private:
int id;
string nom;
int capacite;
public:
Salle(string n, int c) : nom(n), capacite(c), id(0) {}
int getId() const { return id; }
string getNom() const { return nom; }
int getCapacite() const { return capacite; }
};
class Match {
private:
Joueur joueur1;
Joueur joueur2;
string resultat;
string winner;
public:
Match(Joueur j1, Joueur j2) : joueur1(j1), joueur2(j2) {}
void setResultat(string r) { resultat = r; }
void setWinner(string w) { winner = w; }
void afficher() const {
cout << joueur1.getNom() << " contre " << joueur2.getNom() << " -
Résultat : " << resultat << ", Winner: " << winner << endl;
}
};
class Reservation {
private:
int id;
Spectateur spectateur;
Salle salle;
double prix;
public:
Reservation(Spectateur s, Salle r, double p) : spectateur(s), salle(r), prix(p),
id(0) {}
int getId() const { return id; }
Spectateur getSpectateur() const { return spectateur; }
Salle getRoom() const { return salle; }
double getPrice() const { return prix; }
void setPrice(double p) { prix = p; }
};
class Arbitre {
private:
int id;
string nom;
public:
Arbitre(string n) : nom(n), id(0) {}
int getId() const { return id; }
string getNom() const { return nom; }
void setId(int i) { id = i; }
void setNom(string n) { nom = n; }
};
class Tournoi {
private:
string nom;
vector<Joueur> joueurs;
vector<Match> matches;
vector<Salle> salles;
vector<Arbitre> arbitres;
vector<Reservation> Reservations;
public:
Tournoi(string n) : nom(n) {}
void ajouterJoueur(Joueur joueur) { joueurs.push_back(joueur); }
void creerMatch() {
for (size_t i = 0; i < joueurs.size(); i += 2) {
Match match(joueurs[i], joueurs[i + 1]);
matches.push_back(match);
}
}
void creerFinalMatch(Joueur j1, Joueur j2) {
Match finalMatch(j1, j2);
matches.push_back(finalMatch);
}
void setMatchWinner(int matchIndex, string winnerName) {
if (matchIndex >= 0 && matchIndex < matches.size()) {
matches[matchIndex].setWinner(winnerName);
}
}
void afficherMatches() const {
cout << "Tournoi : " << nom << endl;
cout << "Matches : " << endl;
for (const auto& match : matches) {
match.afficher();
}
}
void ajouterReservation(Reservation Reservation) {
Reservations.push_back(Reservation);
}
void afficherReservations() const {
cout << "Reservations : " << endl;
for (const auto& reservation : Reservations) {
cout << "Spectateur : " << reservation.getSpectateur().getNom()
<< ", Salle : " << reservation.getRoom().getNom()
<< ", Prix : " << reservation.getPrice() << endl;
}
}
void ajouterArbitre(Arbitre arbitre) {
arbitres.push_back(arbitre);
}
};
int main() {
Tournoi tournoi("Tournoi des echecs");
tournoi.creerMatch();
tournoi.setMatchWinner(0, joueur1.getNom());
tournoi.setMatchWinner(1, joueur3.getNom());
tournoi.afficherMatches();
tournoi.creerFinalMatch(joueur1, joueur3);
tournoi.setMatchWinner(2, joueur1.getNom());
tournoi.afficherMatches();
tournoi.afficherReservations();
return 0;
}
Conclusion
Cette application de gestion de tournoi d'échecs devrait permettre aux organisateurs
de tournois de planifier, organiser et gérer efficacement leurs tournois. L'application
devrait être facile à utiliser et fournir toutes les fonctionnalités nécessaires pour un
tournoi réussi.