[Bug] Blocs colorés incorrectement

Et titres mélangés

a marqué ce sujet comme résolu.

Salut à tous,

D’abord, un grand merci à l’équipe de développement, qui sur son temps libres et en tant qu’amateurs1 fait un super boulot.

En m’amusant avec les blocs, je me suis rendu compte que les titres n’étaient pas toujours corrects. Le bloc information est ainsi correctement coloré, mais pas son titre. Notez aussi l’icône incorrecte.

Question intéressante

Ah bon ?

Une erreur critique

Erreur !

Attention

Attention.

Un bloc d’information

Une information.

J’ai également rencontré un bug avec les titres des blocs secrets qui fusionnent dans le cas où un bloc secret se trouve au sein d’un autre.

Il ne faut pas dire

Un autre moins secret.

Chhhht

Un secret très secret.

informaticienzero


  1. Attention, je ne dis pas ça dans un sens péjoratif, mais plutôt dans le sens pas professionnellement.

Salut à tous.

Je me permet de remonter ce sujet que j’avais complètement oublié, car j’ai encore rencontré le même bug aujourd’hui. Notez dans l’exemple ci-dessous que les blocs neutres disparaissent carrément.


Correction

Comme un cercle a un point central, j’ai séparé les opérations concernant les points de celles concernant les cercles. En effet, le calcul de la distance entre deux points n’est pas une opération réservée aux seuls cercles, mais peut être effectuée pour n’importe quel point.

J’ai aussi décidé de fournir le service distance et appartient comme des fonctions libres, car, de mon point de vue, ces opérations ne sont pas « liées à une instance en particulier », mais sont générales. C’est un choix de conception.

Point.hpp
#ifndef POINT_HPP
#define POINT_HPP

struct Point
{
    int x;
    int y;
};

double distance(Point const & lhs, Point const & rhs);

#endif
Point.cpp
#include <cmath>
#include "Point.hpp"

double distance(Point const & lhs, Point const & rhs)
{
    return std::sqrt(std::pow(lhs.x - rhs.x, 2) + std::pow(lhs.y - rhs.y, 2));
}
Cercle.hpp
#ifndef CERCLE_HPP
#define CERCLE_HPP

#include "Point.hpp"

struct Cercle
{
    double aire() const noexcept;
    double perimetre() const noexcept;

    double rayon;
    Point centre;
};

bool appartient(Cercle const & cercle, Point const & point);

#endif
Cercle.cpp
#include <cmath>
#include "Cercle.hpp"

double Cercle::aire() const noexcept
{
    return rayon * rayon * M_PI;
}

double Cercle::perimetre() const noexcept
{
    return 2 * rayon * M_PI;
}

bool appartient(Cercle const & cercle, Point const & point)
{
    return distance(cercle.centre, point) <= cercle.rayon; 
}
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte