Un jeu porte sa licence has been fixed.
See more details at : https://github.com/pdulvp/pdcartes-barquette/issues/13
- un champ « Licence » s'ajoute à la ligne du jeu, à côté du nom, de l'auteur
et de la remarque: du texte libre et facultatif — « CC BY-SA 4.0 »,
« Domaine public », un nom de licence ou une adresse
- elle est écrite dans un bloc étiqueté placé en dernier, après les recettes:
l'en-tête est lu par position et ne peut pas s'allonger, et un lecteur plus
ancien s'arrête sur une étiquette inconnue sans rien perdre de ce qui
précède
- le bloc n'est écrit que si la licence existe: un jeu sans licence donne le
même fichier qu'avant, octet pour octet, vérifié par empreinte
- pdcartes-rami la montre sous le nom du jeu choisi, avec l'auteur et la
remarque: une licence que personne ne peut lire ne sert à rien
Un jeu porte sa licence
<sub>2026-10-28-0140-un-jeu-porte-sa-licence.md — 2026-10-28 01:40</sub>
Demandé : pouvoir donner une licence à un jeu de cartes, si on le souhaite.
Décisions
- Un champ de plus à côté du nom, de l'auteur et de la remarque. Un jeu
porte déjà ces trois-là : la licence est de la même nature, et se pose au
même endroit plutôt que dans une boîte à part. Elle reste facultative, et un
jeu sans licence est un jeu comme un autre.
- Du texte libre, sur une ligne. « CC BY-SA 4.0 », « Domaine public », un
nom de licence ou une adresse : c'est ce qu'on écrit sur un jeu. Une liste à
choix imposerait un catalogue à tenir, et n'aurait pas la case qu'il faut le
jour où quelqu'un veut autre chose.
- Un bloc étiqueté écrit en dernier. L'en-tête du fichier est une suite de
champs lue par position : y ajouter la licence déplacerait tout ce qui suit
et ferait lire n'importe quoi à un lecteur plus ancien. Elle va donc dans un
bloc étiqueté, comme le genre et les recettes. Et en dernier, parce qu'un
lecteur qui rencontre une étiquette inconnue s'arrête faute de savoir où le
bloc finit : placée avant les recettes, elle les lui ferait perdre.
- Le bloc n'est écrit que si la licence existe. Un jeu sans licence donne
donc exactement le fichier qu'il donnait, octet pour octet.
- Le jeu de rami la montre avec l'auteur. Une licence que personne ne peut
lire ne sert à rien. La page des cartes décrit déjà le jeu choisi par son
auteur et sa remarque ; la licence s'y ajoute, entre parenthèses.
Étapes
- [x] lib/CardSet.h, lib/CardSet.cpp — le champ licence, et son bloc
écrit en dernier puis relu.
- [x] lib/CardDeck.h, lib/CardDeck.cpp — la licence dans DeckEntry.
- [x] src/AtelierWindow.cpp — le champ dans la ligne du jeu, rempli à
l'ouverture et enregistré avec le reste.
- [x] src/HelpDialog.cpp — une phrase.
- [x] card-sol/src/SettingsDialog.cpp — la licence sous le jeu choisi.
- [x] Bâtir en série, puis vérifier : aller-retour par le fichier, fichier
inchangé sans licence, et la ligne du jeu qui ne pousse pas la fenêtre.
- [x] docs/plans/sumup.md, archivage du plan.
Vérifié
Bâti en série : cartotheque, pdcartes-barquette et pdcartes-rami
compilent et se lient sans avertissement.
Aller-retour par le fichier : un jeu de 53 faces et un dos, portant la licence
« CC BY-SA 4.0 », revient avec sa licence, son nom, son auteur, sa remarque,
ses 53 faces, son dos et ses 54 recettes. Le bloc de la licence étant écrit
après celui des recettes, un lecteur qui ne le connaît pas s'arrête dessus
sans rien perdre de ce qui précède.
Sans licence, le fichier est identique octet pour octet à celui que
produit la cartothèque du commit précédent, comparé par empreinte : le bloc
est omis, et rien d'autre ne bouge.
Une première comparaison annonçait 360 octets d'écart. Vérifié : c'était le
programme d'essai et non la cartothèque. Il enregistrait deux fichiers par
exécution d'un côté et un seul de l'autre, et le premier dessin d'un
programme ne donne pas exactement les mêmes octets de compression que le
suivant — le texte des cartes se rend à un cheveu près différemment une fois
les polices chargées. Les images elles-mêmes sont identiques, vérifié case par
case par empreinte : les 53 faces et le dos.
La ligne du jeu passe de 264 à 299 pixels de largeur minimale, soit 35 de
plus. La colonne de gauche en dispose de 672 lorsque la section « La carte
dessinée » impose ses 1120 à la fenêtre : le champ ne pousse donc rien.
<sub>Filed by prel from the completed plans at commit time.</sub>