fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. #include <iostream>
  5. #include <string>
  6. #include <cmath> // Pour les calculs nécessaires dans les méthodes comme "adjacent".
  7.  
  8. using coord = unsigned short; // Type représentant les coordonnées comme un entier court non signé.
  9.  
  10. // Classe position : représente une position (x, y) sur le plateau de jeu.
  11. class position {
  12. private:
  13. coord x_coord; // Abscisse (x).
  14. coord y_coord; // Ordonnée (y).
  15.  
  16. public:
  17. // Constructeur : initialise une position avec les coordonnées x et y.
  18. position(coord x = 0, coord y = 0) : x_coord(x), y_coord(y) {}
  19.  
  20. // Accesseur : retourne l'abscisse x.
  21. coord x() const { return x_coord; }
  22.  
  23. // Accesseur : retourne l'ordonnée y.
  24. coord y() const { return y_coord; }
  25.  
  26. // Méthode tostring : retourne une chaîne représentant la position.
  27. // Exemple : si la position est (5, 2), la chaîne retournée sera "X5Y2".
  28. std::string tostring() const {
  29. return "X" + std::to_string(x_coord) + "Y" + std::to_string(y_coord);
  30. }
  31.  
  32. // Méthode egale : vérifie si deux positions sont égales.
  33. bool egale(const position& autre) const {
  34. return x_coord == autre.x_coord && y_coord == autre.y_coord;
  35. }
  36.  
  37. // Méthode adjacent : vérifie si deux positions sont adjacentes.
  38. // Deux positions sont adjacentes si elles sont juste au-dessus, en dessous, à gauche ou à droite.
  39. bool adjacent(const position& autre) const {
  40. return (x_coord == autre.x_coord && std::abs((int)y_coord - (int)autre.y_coord) == 1) ||
  41. (y_coord == autre.y_coord && std::abs((int)x_coord - (int)autre.x_coord) == 1);
  42. }
  43. };
  44.  
  45.  
  46.  
  47. int main() {
  48. // your code goes here
  49. return 0;
  50. }
Success #stdin #stdout 0s 5280KB
stdin
Standard input is empty
stdout
Standard output is empty