![]() |
SpaceInvaders
1.0
Ebauche d'une réalisation d'un space invader
|
Définitions de type | |
typedef std::vector< std::string > | CVString |
Alias vers le type de l'écran (l'espace, la matrice). Plus de détails... | |
typedef std::pair< unsigned, unsigned > | CPosition |
Alias vers une coordonnée de la matrice. Le premier élément de la paire désigne une ordonnée (axe Y), le second une abscisse (axe X). Plus de détails... | |
typedef std::vector< CPosition > | CVPosition |
Alias vers un vecteur de coordonnees. Plus de détails... | |
typedef std::array< CVPosition, 4 > | CAObject |
Alias vers un tableau de 4 vecteurs de coordonnees. Plus de détails... | |
Fonctions | |
const std::string | KReset ("0") |
Alias remetant la couleur du texte du terminal à sa valeur par défaut. Plus de détails... | |
const std::string | KNoir ("30") |
Alias mettant en noir la couleur du texte du terminal. Plus de détails... | |
const std::string | KRouge ("31") |
Alias mettant en rouge la couleur du texte du terminal. Plus de détails... | |
const std::string | KVert ("32") |
Alias mettant en vert la couleur du texte du terminal. Plus de détails... | |
const std::string | KJaune ("33") |
Alias mettant en jaune la couleur du texte du terminal. Plus de détails... | |
const std::string | KBleu ("34") |
Alias mettant en bleu la couleur du texte du terminal. Plus de détails... | |
const std::string | KMAgenta ("35") |
Alias mettant en mangenta la couleur du texte du terminal. Plus de détails... | |
const std::string | KCyan ("36") |
Alias mettant en cyan la couleur du texte du terminal. Plus de détails... | |
const std::string | KInvadersColor (KJaune) |
Couleur de l'envahisseur. Plus de détails... | |
const std::string | KMyColor (KVert) |
Couleur liée à mes objets (vaisseaux et tropilles). Plus de détails... | |
const std::string | KEmptyLine (KSizeLine, KEmpty) |
Alias vers une ligne vide de l'esapce. Plus de détails... | |
void | Couleur (const string &Coul) |
void | ClearScreen () |
Fonction effaçant le contenu de l'écran. Plus de détails... | |
void | PutCVPosition (const CVPosition &VPos, char Car, CVString &Space) |
Permet d'insérer le carcactère passé en second paramètre à toutes les positions souhaitées (1er paramètre) de l'espace de jeu (3ème paramètre). Plus de détails... | |
void | PutAllObjects (const CAObject &Obj, CVString &Space) |
Vide l'espace de jeu, puis insère tous les objets du jeu. Plus de détails... | |
void | DisplaySpace (const CVString &Space) |
Permet d'afficher l'espace de jeu. Plus de détails... | |
void | InitSpace (CVString &Space, CAObject &Obj) |
Permet d'initialiser l'espace de jeu et de définir les coordonnées des objets à placer au lancement du jeu. Plus de détails... | |
void | MaxX (const CVPosition &VPos, CPosition &MaxPos) |
Trouve le maximum d'un vecteur de CPosition de la coordonées en X (abscisse). Plus de détails... | |
void | MaxY (const CVPosition &VPos, CPosition &MaxPos) |
Trouve le maximum d'un vecteur de CPosition de la coordonées en Y (ordonnée). Plus de détails... | |
void | MinX (const CVPosition &VPos, CPosition &MinPos) |
Trouve le minimum d'un vecteur de CPosition de la coordonées en X (abscisse). Plus de détails... | |
bool | MoveLeft (CVPosition &VPos) |
Simule un déplacement gauche en retranchant une unité de déplacement à toutes les abscisses des objets en paramètre. Plus de détails... | |
bool | MoveRight (const CVString &Space, CVPosition &VPos) |
Simule un déplacement droit en ajoutant une unité de déplacement à toutes les abscisses des objets en paramètre. Plus de détails... | |
void | MoveDown (CVPosition &VPos) |
Simule un déplacement bas en ajoutant une unité de déplacement à toutes les ordonnées des objets en paramètre. Plus de détails... | |
void | MoveUp (CVPosition &VPos) |
Simule un déplacement haut en ajoutant une unité de déplacement à toutes les ordonnées des objets en paramètre. Plus de détails... | |
void | ManageMe (const CVString &Space, CAObject &Obj) |
Simule le jeu du joueur. C'est ici que le joueur choisit ce qu'il fait. S'il décide de tirer, une tropille est lancée, d'une position au hasard, au dessus d'une de ses positions. Plus de détails... | |
void | ManageInvaders (const CVString &Space, CAObject &Obj, unsigned &Direction, unsigned &WhatInvaderDo) |
ManageInvaders Simule le jeu de l'envahisseur. Plus de détails... | |
void | CollisionBetweenObjectsAndShips (CVPosition &Objects, CVPosition &StarShips) |
Gère les collisions entre les objets et les vaisseaux. Si une collision est détéctée (même coordonées pour un objet et une partie d'un vaisseau), l'objet et la partie du vaisseau diparaissent. Plus de détails... | |
void | CollisionBetweenMissilesAndTorpedos (CVPosition &Missiles, CVPosition &Torpedos) |
Gère les collisions (multiples) entre les missiles et les tropilles. Plus de détails... | |
void | ManageCollisions (CAObject &Obj) |
Gère toutes les collisions du jeu. Plus de détails... | |
unsigned | Victory (const CVString &Space, const CAObject &Obj) |
Teste si l'envahisseur ou si le joueur ont gagné. Plus de détails... | |
void | DeleteMissiles (const CVString &Space, CVPosition &Missiles) |
Supprime les missiles qui sortent de l'espace de jeu. Plus de détails... | |
void | DeleteTorpedos (CVPosition &Torpedos) |
Supprime les tropilles qui sortent de l'espace de jeu. Plus de détails... | |
unsigned | SpaceInvaders (void) |
Fonction principale du jeu sans option. Plus de détails... | |
void | ShowFile (const string &FileName) |
Permet d'afficher le contenu d'un fichier à l'écran. Plus de détails... | |
void | set_input_mode (void) |
Permet d'activer la saisie à la volée. Utile pour gérer les déplacement du joueur sans appuyer sur la touche entrée. si le joueur ne joue pas pendant 3 10ème de seconde, alors il pert une action. voir : http://www.gnu.org/software/libc/manual/html_node/Noncanon-Example.html et http://man7.org/linux/man-pages/man3/termios.3.html. Plus de détails... | |
int | ppal (const string &Path) |
void | Couleur (const std::string &Coul) |
void | ShowFile (const std::string &FileName) |
int | ppal (const std::string &Path) |
Variables | |
const char | KRight = 'x' |
Alias vers la touche servant à se déplacer à droite. Plus de détails... | |
const char | KLeft = 'w' |
Alias vers la touche servant à se déplacer à gauche. Plus de détails... | |
const char | KShoot = ' ' |
Alias vers la touche servant à lancer une torpille. Plus de détails... | |
const char | KInsideInvader = 'W' |
Caractèrere formant l'envahisseur. Plus de détails... | |
const char | KMissile = 'T' |
Caractèrere formant le missile. Plus de détails... | |
const unsigned | KInvadersSize = 5 |
Nombre de caractères qui forment l'envahisseur. Plus de détails... | |
const unsigned | KMissileRatio = 2 |
Nombre de fois où l'envahisseur tire un missile par rapport à son déplacement. Plus de détails... | |
const char | KInsideMe = 'A' |
Caractèrere formant mon vaisseau. Plus de détails... | |
const char | KTorpedo = '|' |
Caractèrere formant ma torpille. Plus de détails... | |
const unsigned | KMySize = 4 |
Nombre de caractères qui forment mon vaisseau. Plus de détails... | |
const unsigned | KRatioMeInvaders = 4 |
Nombre de fois où c'est le tour du joueur pour un tour de l'envahisseur. Plus de détails... | |
const char | KEmpty = ' ' |
Alias vers une case vide à l'écran. Plus de détails... | |
const unsigned | KSizeLine = 10 |
Nombre de lignes de l'écran (de l'espace). Plus de détails... | |
const unsigned | KSizeSpace = 10 |
Nombre de colonnes de l'écran (de l'espace). Plus de détails... | |
const unsigned | KBegInvader = 0 |
Numéro de colonne où commence l'envahisseur. Plus de détails... | |
const unsigned | KBegMe = KSizeLine / 2 |
Numéro de colonne où commence le joueur. Plus de détails... | |
Alias vers un tableau de 4 vecteurs de coordonnees.
Définition à la ligne 54 du fichier MyType_AC.h.
Alias vers une coordonnée de la matrice. Le premier élément de la paire désigne une ordonnée (axe Y), le second une abscisse (axe X).
Définition à la ligne 31 du fichier MyType_AC.h.
Alias vers un vecteur de coordonnees.
Définition à la ligne 37 du fichier MyType_AC.h.
Alias vers le type de l'écran (l'espace, la matrice).
Définition à la ligne 23 du fichier MyType_AC.h.
void nsSpaceInvader_AC::ClearScreen | ( | ) |
Fonction effaçant le contenu de l'écran.
Définition à la ligne 29 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::CollisionBetweenMissilesAndTorpedos | ( | CVPosition & | Missiles, |
CVPosition & | Torpedos | ||
) |
Gère les collisions (multiples) entre les missiles et les tropilles.
Missiles | [in, out] Vecteur des positions des missiles |
Torpedos | [in, out] Vecteur des positions des torpilles |
Définition à la ligne 222 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::CollisionBetweenObjectsAndShips | ( | CVPosition & | Objects, |
CVPosition & | StarShips | ||
) |
Gère les collisions entre les objets et les vaisseaux. Si une collision est détéctée (même coordonées pour un objet et une partie d'un vaisseau), l'objet et la partie du vaisseau diparaissent.
Objects | [in, out] Vecteur des positions des objects à traiter |
StarShips | [in, out] Vecteur des positions des vaisseaux à traiter |
Définition à la ligne 205 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::Couleur | ( | const std::string & | Coul | ) |
void nsSpaceInvader_AC::Couleur | ( | const string & | Coul | ) |
Définition à la ligne 24 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::DeleteMissiles | ( | const CVString & | Space, |
CVPosition & | Missiles | ||
) |
Supprime les missiles qui sortent de l'espace de jeu.
[in] | Space | Espace de jeu |
Missiles | [in, out] Vecteur des positions des missiles |
Définition à la ligne 262 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::DeleteTorpedos | ( | CVPosition & | Torpedos | ) |
Supprime les tropilles qui sortent de l'espace de jeu.
Torpedos | [in, out] Vecteur des positions des torpilles |
Définition à la ligne 272 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::DisplaySpace | ( | const CVString & | Space | ) |
Permet d'afficher l'espace de jeu.
[in] | Space | Espace de jeu |
Définition à la ligne 49 du fichier SpaceInvader_AC.cpp.
Permet d'initialiser l'espace de jeu et de définir les coordonnées des objets à placer au lancement du jeu.
Space | [out] Espace de jeu |
Obj | [ou] Liste des objets à placer au début du jeu |
Définition à la ligne 77 du fichier SpaceInvader_AC.cpp.
const std::string nsSpaceInvader_AC::KBleu | ( | "34" | ) |
Alias mettant en bleu la couleur du texte du terminal.
const std::string nsSpaceInvader_AC::KCyan | ( | "36" | ) |
Alias mettant en cyan la couleur du texte du terminal.
Alias vers une ligne vide de l'esapce.
const std::string nsSpaceInvader_AC::KInvadersColor | ( | KJaune | ) |
Couleur de l'envahisseur.
const std::string nsSpaceInvader_AC::KJaune | ( | "33" | ) |
Alias mettant en jaune la couleur du texte du terminal.
const std::string nsSpaceInvader_AC::KMAgenta | ( | "35" | ) |
Alias mettant en mangenta la couleur du texte du terminal.
const std::string nsSpaceInvader_AC::KMyColor | ( | KVert | ) |
Couleur liée à mes objets (vaisseaux et tropilles).
const std::string nsSpaceInvader_AC::KNoir | ( | "30" | ) |
Alias mettant en noir la couleur du texte du terminal.
const std::string nsSpaceInvader_AC::KReset | ( | "0" | ) |
Alias remetant la couleur du texte du terminal à sa valeur par défaut.
const std::string nsSpaceInvader_AC::KRouge | ( | "31" | ) |
Alias mettant en rouge la couleur du texte du terminal.
const std::string nsSpaceInvader_AC::KVert | ( | "32" | ) |
Alias mettant en vert la couleur du texte du terminal.
void nsSpaceInvader_AC::ManageCollisions | ( | CAObject & | Obj | ) |
Gère toutes les collisions du jeu.
[in,out] | Obj | Liste des objets du jeu |
Définition à la ligne 247 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::ManageInvaders | ( | const CVString & | Space, |
CAObject & | Obj, | ||
unsigned & | Direction, | ||
unsigned & | WhatInvaderDo | ||
) |
ManageInvaders Simule le jeu de l'envahisseur.
Space | [in] Espace de jeu |
Obj | [in, out] Liste des objets du jeu |
Direction | [in, out] Sens de déplacement de l'envahisseur |
WhatInvaderDo | [in, out] Ce que doit faire l'envahisseur (se déplacer ou lancer un missile, d'une position au hasard, au dessous d'une de ses positions). |
Définition à la ligne 173 du fichier SpaceInvader_AC.cpp.
Simule le jeu du joueur. C'est ici que le joueur choisit ce qu'il fait. S'il décide de tirer, une tropille est lancée, d'une position au hasard, au dessus d'une de ses positions.
Space | [in] Espace de jeu |
Obj | [in, out] Liste des objets du jeu |
Définition à la ligne 153 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::MaxX | ( | const CVPosition & | VPos, |
CPosition & | MaxPos | ||
) |
Trouve le maximum d'un vecteur de CPosition de la coordonées en X (abscisse).
VPos | [in] Vecteur de CPosition |
MaxPos | [out] Valeur maximale pour X |
Définition à la ligne 95 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::MaxY | ( | const CVPosition & | VPos, |
CPosition & | MaxPos | ||
) |
Trouve le maximum d'un vecteur de CPosition de la coordonées en Y (ordonnée).
VPos | [in] Vecteur de CPosition |
MaxPos | [out] Valeur maximale pour Y |
Définition à la ligne 103 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::MinX | ( | const CVPosition & | VPos, |
CPosition & | MinPos | ||
) |
Trouve le minimum d'un vecteur de CPosition de la coordonées en X (abscisse).
VPos | [in] Vecteur de CPosition |
MinPos | [out] Valeur minimale pour X |
Définition à la ligne 112 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::MoveDown | ( | CVPosition & | VPos | ) |
Simule un déplacement bas en ajoutant une unité de déplacement à toutes les ordonnées des objets en paramètre.
VPos | [in, out] Vecteur de CPosition |
Définition à la ligne 141 du fichier SpaceInvader_AC.cpp.
bool nsSpaceInvader_AC::MoveLeft | ( | CVPosition & | VPos | ) |
Simule un déplacement gauche en retranchant une unité de déplacement à toutes les abscisses des objets en paramètre.
VPos | [in, out] Vecteur de CPosition |
Définition à la ligne 120 du fichier SpaceInvader_AC.cpp.
bool nsSpaceInvader_AC::MoveRight | ( | const CVString & | Space, |
CVPosition & | VPos | ||
) |
Simule un déplacement droit en ajoutant une unité de déplacement à toutes les abscisses des objets en paramètre.
Space | [in] Espace de jeu |
VPos | [in, out] Vecteur de CPosition |
Définition à la ligne 130 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::MoveUp | ( | CVPosition & | VPos | ) |
Simule un déplacement haut en ajoutant une unité de déplacement à toutes les ordonnées des objets en paramètre.
VPos | [in, out] Vecteur de CPosition |
Définition à la ligne 147 du fichier SpaceInvader_AC.cpp.
int nsSpaceInvader_AC::ppal | ( | const std::string & | Path | ) |
int nsSpaceInvader_AC::ppal | ( | const string & | Path | ) |
Définition à la ligne 355 du fichier SpaceInvader_AC.cpp.
Vide l'espace de jeu, puis insère tous les objets du jeu.
Obj | [in] Liste des objets à insérer |
Space | [in, out] Espace de jeu |
Définition à la ligne 40 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::PutCVPosition | ( | const CVPosition & | VPos, |
char | Car, | ||
CVString & | Space | ||
) |
Permet d'insérer le carcactère passé en second paramètre à toutes les positions souhaitées (1er paramètre) de l'espace de jeu (3ème paramètre).
[in] | VPos | Vecteur de CPosition |
[in] | Car | Caractère à insérer dans l'esapce |
[in,out] | Space | Espace de jeu |
Définition à la ligne 34 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::set_input_mode | ( | void | ) |
Permet d'activer la saisie à la volée. Utile pour gérer les déplacement du joueur sans appuyer sur la touche entrée. si le joueur ne joue pas pendant 3 10ème de seconde, alors il pert une action.
voir : http://www.gnu.org/software/libc/manual/html_node/Noncanon-Example.html et http://man7.org/linux/man-pages/man3/termios.3.html.
Définition à la ligne 336 du fichier SpaceInvader_AC.cpp.
void nsSpaceInvader_AC::ShowFile | ( | const std::string & | FileName | ) |
void nsSpaceInvader_AC::ShowFile | ( | const string & | FileName | ) |
Permet d'afficher le contenu d'un fichier à l'écran.
FileName | [in] Chemin vers le fichier à afficher |
Définition à la ligne 327 du fichier SpaceInvader_AC.cpp.
unsigned nsSpaceInvader_AC::SpaceInvaders | ( | void | ) |
Fonction principale du jeu sans option.
Définition à la ligne 282 du fichier SpaceInvader_AC.cpp.
Teste si l'envahisseur ou si le joueur ont gagné.
Space | [in] Espace de jeu |
Obj | [in] Liste des objets du jeu |
Définition à la ligne 254 du fichier SpaceInvader_AC.cpp.
const unsigned nsSpaceInvader_AC::KBegInvader = 0 |
Numéro de colonne où commence l'envahisseur.
Définition à la ligne 142 du fichier MyConst_AC.h.
const unsigned nsSpaceInvader_AC::KBegMe = KSizeLine / 2 |
Numéro de colonne où commence le joueur.
Définition à la ligne 147 du fichier MyConst_AC.h.
const char nsSpaceInvader_AC::KEmpty = ' ' |
Alias vers une case vide à l'écran.
Définition à la ligne 128 du fichier MyConst_AC.h.
const char nsSpaceInvader_AC::KInsideInvader = 'W' |
Caractèrere formant l'envahisseur.
Définition à la ligne 79 du fichier MyConst_AC.h.
const char nsSpaceInvader_AC::KInsideMe = 'A' |
Caractèrere formant mon vaisseau.
Définition à la ligne 105 du fichier MyConst_AC.h.
const unsigned nsSpaceInvader_AC::KInvadersSize = 5 |
Nombre de caractères qui forment l'envahisseur.
Définition à la ligne 89 du fichier MyConst_AC.h.
const char nsSpaceInvader_AC::KLeft = 'w' |
Alias vers la touche servant à se déplacer à gauche.
Définition à la ligne 63 du fichier MyConst_AC.h.
const char nsSpaceInvader_AC::KMissile = 'T' |
Caractèrere formant le missile.
Définition à la ligne 84 du fichier MyConst_AC.h.
const unsigned nsSpaceInvader_AC::KMissileRatio = 2 |
Nombre de fois où l'envahisseur tire un missile par rapport à son déplacement.
Définition à la ligne 94 du fichier MyConst_AC.h.
const unsigned nsSpaceInvader_AC::KMySize = 4 |
Nombre de caractères qui forment mon vaisseau.
Définition à la ligne 115 du fichier MyConst_AC.h.
const unsigned nsSpaceInvader_AC::KRatioMeInvaders = 4 |
Nombre de fois où c'est le tour du joueur pour un tour de l'envahisseur.
Définition à la ligne 121 du fichier MyConst_AC.h.
const char nsSpaceInvader_AC::KRight = 'x' |
Alias vers la touche servant à se déplacer à droite.
Définition à la ligne 58 du fichier MyConst_AC.h.
const char nsSpaceInvader_AC::KShoot = ' ' |
Alias vers la touche servant à lancer une torpille.
Définition à la ligne 68 du fichier MyConst_AC.h.
const unsigned nsSpaceInvader_AC::KSizeLine = 10 |
Nombre de lignes de l'écran (de l'espace).
Définition à la ligne 132 du fichier MyConst_AC.h.
const unsigned nsSpaceInvader_AC::KSizeSpace = 10 |
Nombre de colonnes de l'écran (de l'espace).
Définition à la ligne 137 du fichier MyConst_AC.h.
const char nsSpaceInvader_AC::KTorpedo = '|' |
Caractèrere formant ma torpille.
Définition à la ligne 110 du fichier MyConst_AC.h.