pdulvp.fr

Les cartes dessinées reprises, puis passées dans la cartothèque has been fixed.

See more details at : https://github.com/pdulvp/pdcartes-rami/issues/17

  • cartes à la proportion de CARDS.DLL (71/96) au lieu de 2,25 × 3,5 pouces :

moins hautes, plus larges, le milieu moins vide ; trèfle redessiné, lobes
joints, et les quatre symboles ramenés à une même boîte carrée

  • le rang du coin ne recouvre plus les symboles : pipLayout() décrit

désormais le centre des symboles, et la grille est posée au-delà d'une
colonne d'index de largeur fixe

  • valet, dame, roi et joker sur un même panneau beige cerné d'un filet, le

beige tiré de l'or de la palette pour suivre la teinte de la table ; bonnet
du joker sans son bandeau, et l'as de pique plein comme les trois autres as

  • le dessin d'une carte passe dans la cartothèque, où l'atelier s'en sert pour

fabriquer des jeux ; ce qui reste ici est le tapis et ce qu'on y pose, d'où
le renommage de CardArt en FeltArt

  • les couleurs d'une carte tiennent dans un CardStyle au lieu d'être tirées

de la palette au fond du dessin ; src/DrawnDeck.* disparaît,
--exporter-cartes appelant drawnCardSet() de la cartothèque

Les cartes dessinées reprises : proportion, marges, trèfle et figures

<sub>2026-10-25-1440-les-cartes-dessinees-reprises.md — 2026-10-25 14:40</sub>

Les cartes que le programme dessine lui-même sont jugées laides. Cinq
reproches, relevés sur la planche des cinquante-quatre faces rendues hors
écran :

  1. Le rang passe par-dessus les symboles. L'index du coin est large — il

est dimensionné sur les deux chiffres du 10 — alors que la zone centrale
est rentrée d'un quart de la largeur seulement. Sur un 10, la colonne de
gauche des symboles et le chiffre se recouvrent.

  1. La carte est trop haute. Elle suit la proportion des cartes réelles,

0,642. Les cartes de CARDS.DLL mesurent 71 sur 96, soit 0,740 ; c'est
celle-là qui est demandée.

  1. Le trèfle est laid. Trois disques séparés par un jour, posés sur une

tige droite trop maigre : il se lit mal et se distingue mal du carreau à
petite taille.

  1. Trop de blanc, des dessins trop petits. Les marges intérieures et la

taille des symboles laissent la carte vide en son milieu.

  1. Les figures sont nues. Un panneau beige cerné de blanc, derrière la

couronne, le diadème et la fleur de lis, est demandé.

Décisions

  • La proportion de Windows devient celle du jeu dessiné. kCardRatio

passe à 71/96. Cette constante sert aussi de borne de largeur dans
cardSizeForHeight() : un jeu installé aux proportions de Windows cesse
d'y perdre de la hauteur, ce qui est cohérent avec la demande.

  • La grille des symboles est décrite par le centre de ses symboles. La

table pipLayout() donnait des fractions d'une zone à remplir ; elle donne
désormais des points dans le carré unité des centres. Écarter ou resserrer
la grille ne demande plus de retoucher dix lignes de nombres — et il a
fallu l'écarter pour la dégager des index.

  • La colonne du coin a la même largeur sur les treize rangs. C'est elle

qui fixe le bord de la grille ; une colonne dont la largeur dépendrait du
rang placerait les symboles du dix ailleurs que ceux du neuf. Le 10, seul
rang à deux chiffres, est donc composé un peu plus petit pour y tenir,
comme sur une carte imprimée.

  • Le beige vient de la palette. Il est obtenu en mêlant le papier à l'or

de la palette, et non posé en dur : les cartes suivent la teinte de la
table, un beige fixe jurerait en mode sombre.

  • Le trèfle est réuni à l'échelle cent. QPainterPath::united() remplace

les courbes par des segments, et la finesse du découpage est rapportée aux
coordonnées du tracé. Réunis dans le carré unité, les trois disques
revenaient en polygones aux facettes visibles.

Étapes

  1. [x] src/CardArt.cpp — kCardRatio à la proportion de Windows, et les

commentaires qui la citent mis à jour.

  1. [x] src/CardArt.cpp — le trèfle redessiné : lobes jointifs et tige

évasée.

  1. [x] src/CardArt.cpp — paintDrawnFace() : marges réduites, zone centrale

dégagée de l'index, symboles agrandis.

  1. [x] src/CardArt.cpp — paintCourtMark() : panneau beige cerné de blanc

derrière l'emblème des trois figures.

  1. [x] Bâtir en série, exporter le jeu dessiné et regarder la planche des

cinquante-quatre faces.

  1. [x] Vérifier que la main, les combinaisons et la pioche encaissent la

nouvelle proportion.

Vérifié

Les cinquante-quatre faces et le dos rendus hors écran par
--exporter-cartes, puis regardés en planche et un à un :

  • aucun rang ne touche plus un symbole, sur aucune carte ; le 10, le plus

large, laisse un jour entre son chiffre et la colonne de gauche ;

  • le trèfle est d'un seul tenant, ses trois lobes joints et ses bords lisses.

Deux défauts ont été trouvés et corrigés à l'œil : une encoche blanche au
milieu, la tige partant d'en dessous du creux que les trois disques
laissent entre eux ; puis les facettes de la réunion faite à l'unité ;

  • les trois figures portent leur panneau beige, arrondi et cerné d'un filet,

la marge blanche de la carte restant autour.

La disposition du tapis a été relue plutôt que lancée : la capture d'écran
n'est pas possible sous Wayland depuis cette session. handSlot() borne déjà
le pas des cartes à la largeur de la rangée — une carte plus large chevauche
davantage, elle ne déborde pas —, la boucle des combinaisons réduit la taille
jusqu'à ce que le tapis tienne, et les deux aperçus de la fenêtre des
réglages découlent de cardSizeForHeight(). L'application a été lancée et
s'ouvre sans erreur.

Trois retouches : le pique élargi, le joker encadré, l'as de pique au trait

<sub>2026-10-25-1510-retouches-pique-joker-as.md — 2026-10-25 15:10</sub>

Demandé dans la foulée de la reprise des cartes dessinées, à la vue de la
planche des cinquante-quatre faces :

  1. Le pique est trop étroit. À l'élargir, mais sans le hausser.
  2. Le joker n'a pas de marge. Il remplit la carte jusqu'au bord, là où

les treize autres en gardent une. À poser sur un panneau, comme le roi.

  1. L'as de pique au trait. Le grand pique du milieu cerné d'un trait

épais, le papier restant visible dedans.

Décisions

  • Seules les abscisses du pique bougent. Sa demi-largeur était de 0,588

quand celle du trèfle est de 0,86 et celle du carreau de 0,66 ; elle passe
à 0,752. Les ordonnées sont celles d'avant : le symbole n'a pas à monter.

  • Le panneau devient commun aux quatre cartes à emblème. Il est extrait

de paintCourtMark() dans paintEmblemPanel(). Les trois figures et le
joker sont les quatre cartes qui ne montrent pas de symboles ; elles se
reconnaissent d'autant mieux qu'elles se ressemblent. Celui du joker est
un peu moins haut, le mot « Joker » s'écrivant en dessous.

  • Le trait ne concerne que l'as de pique. C'est la carte qu'on orne dans

tous les jeux. Les trois autres as restent pleins.

  • La taille du pique est raccourcie. Le corps rejoignait la tige par un

rebroussement long, que le symbole plein cachait et que le symbole au
trait montrait comme un ergot.

Étapes

  1. [x] src/CardArt.cpp — les abscisses du pique écartées.
  2. [x] src/CardArt.cpp — paintEmblemPanel() extrait, et le joker posé

dessus.

  1. [x] src/CardArt.cpp — paintPipOutline(), et l'as de pique qui s'en

sert.

  1. [x] Bâtir en série, exporter le jeu dessiné et regarder la planche.

Vérifié

Les cinquante-quatre faces rendues hors écran et regardées en planche, puis
l'as de pique, le joker et le roi agrandis :

  • le pique tient désormais la largeur du cœur et du carreau, sur tous les

rangs, et les colonnes de symboles gardent leur jour ;

  • le joker porte le même panneau que les figures, le mot « Joker » écrit sur

le papier en dessous ;

  • l'as de pique est au trait. Le rebroussement de la taille a été raccourci

à la vue du premier rendu, où il formait un ergot.

Les quatre symboles à la même boîte, et le bonnet sans son bandeau

<sub>2026-10-25-1545-symboles-a-la-meme-boite.md — 2026-10-25 15:45</sub>

Demandé à la vue de la planche :

  1. Le bandeau doré du joker. Large comme le bonnet et posé en travers du

dessin, il se lit comme un cadre jaune.

  1. Le cœur et le pique élargis, jusqu'au carré.
  2. Les quatre symboles à la taille du trèfle, lequel convient.

Décisions

  • La taille est donnée après coup, et non dans les tracés. Chaque tracé

est ramené à une boîte carrée commune, de côté 1,72 — l'encombrement
qu'avait le trèfle. Les coordonnées des quatre tracés décrivent donc une
forme et non une taille, et retoucher l'une des formes ne demande plus de
recalculer la taille des trois autres pour qu'elles s'accordent.

Les écarts étaient considérables : le cœur mesurait 1,16 sur 1,50, le
carreau 1,32 sur 1,90, le pique 1,50 sur 1,85.

  • Le bandeau est retiré, non reteint. Le bonnet garde ses trois grelots

dorés, lesquels se lisent comme des grelots.

Étapes

  1. [x] src/CardArt.cpp — paintJoker() sans son bandeau.
  2. [x] src/CardArt.cpp — buildPipPath() : les quatre tracés ramenés à

kPipBox.

  1. [x] Bâtir en série, exporter le jeu dessiné et regarder la planche.

Vérifié

Les cinquante-quatre faces rendues hors écran, puis les cinq cartes à grand
dessin agrandies :

  • les quatre as portent un symbole de même encombrement, carré ;
  • sur les rangs de deux à dix, les colonnes de symboles gardent leur jour :

le symbole, plus large, reste en deçà de la colonne du coin d'un côté et de
la colonne du milieu de l'autre ;

  • le joker n'a plus de jaune que ses trois grelots.

L'as de pique redevient plein

<sub>2026-10-26-1005-as-de-pique-plein.md — 2026-10-26 10:05</sub>

Demandé après coup : revenir en arrière sur l'as de pique au trait et le
laisser plein, comme les trois autres as.

Décisions

  • Seul l'as de pique change. La taille raccourcie du symbole est

conservée : elle a été réglée pour le trait, mais ne nuit pas au symbole
plein, et elle sert les dix rangs du pique, dont le rendu a déjà été
vérifié. Seul le commentaire qui l'expliquait par le trait est repris.

  • paintPipOutline() est retirée. Elle n'avait que cet appel, et une

fonction inutilisée de l'espace de noms anonyme fait un avertissement à la
compilation.

Étapes

  1. [x] src/CardArt.cpp — l'as de pique repasse à paintPip().
  2. [x] src/CardArt.cpp — paintPipOutline() supprimée.
  3. [x] src/CardArt.cpp — le commentaire de la taille du pique repris.
  4. [x] docs/plans/sumup.md — la mention de l'as au trait retirée.
  5. [x] Bâtir en série.

Vérifié

Bâti en série : pdcartes-rami lié sans avertissement, l'espace de noms
anonyme ne gardant plus de fonction inutilisée.

Le dessin des cartes passe dans la cartothèque

<sub>2026-10-27-0746-le-dessin-des-cartes-passe-dans-la-cartotheque.md — 2026-10-27 07:46</sub>

src/CardArt.cpp dessine deux choses sans rapport : une carte à jouer, et la
table sur laquelle elle est posée. La première intéresse aussi l'atelier, qui
fabrique les jeux .cartes et ne sait aujourd'hui que recopier des images
venues d'ailleurs. Elle passe donc dans la cartothèque, la bibliothèque que
les deux programmes partagent.

Le dépôt cartes-set-creator a son propre plan : il reçoit le code déplacé et
s'en sert.

Décisions

  • Le rendu ne change pas. CardStyle::fromPalette() reconstitue

exactement les couleurs que le dessin tirait de la palette, et les cartes
de la table restent celles d'avant. C'est un déplacement, pas une refonte.

  • Ce qui reste ici est ce qui ne concerne que la table : le tapis et sa

trame, les couleurs des plaques, le médaillon d'un adversaire, les étoiles
de niveau, la jauge, le tas de dos, la case vide de la pioche, ainsi que
cardAspect() et cardSizeForHeight(), qui consultent le jeu installé.

  • drawCardFace() et drawCardBack() restent ici aussi. Elles portent

l'ombre portée, le liseré de sélection, le halo du coup joué et la
substitution d'un jeu installé : rien de tout cela n'est le dessin d'une
carte.

  • rankLabel() et isRed() délèguent à la cartothèque plutôt que d'y

être recopiées : deux tables des rangs finiraient par diverger.

  • src/DrawnDeck.* disparaît. La cartothèque sait désormais fabriquer le

jeu dessiné complet ; l'option --exporter-cartes ne fait plus que choisir
la teinte, le nom de l'auteur et le chemin, et tient donc dans la branche de
main() qui la traite. Au passage, le rendu n'est plus mesuré par
cardSizeForHeight(), qui aurait donné au jeu dessiné la proportion du jeu
installé.

Étapes

  1. [x] src/CardArt.* renommés en src/FeltArt.* — le dessin d'une carte

retiré, le tapis conservé ; le fichier inclut CardArt.h de la
cartothèque et appelle drawDefaultFace() / drawDefaultBack(). Le
renommage était nécessaire : deux fichiers du même nom, l'un dans
src/, l'autre dans la cartothèque, ne peuvent pas s'inclure l'un
l'autre.

  1. [x] Les dix fichiers qui incluaient CardArt.h pointent sur FeltArt.h,

et CMakeLists.txt avec eux.

  1. [x] src/Cards.cpp — rankLabel() et isRed() délèguent.
  2. [x] src/DrawnDeck.* supprimés ; --exporter-cartes appelle

drawnCardSet() depuis src/main.cpp.

  1. [x] Bâti en série, et l'export vérifié.
  2. [x] docs/plans/sumup.md repris pour couvrir le lot, archivage du plan.

Vérifié

Bâti en série : pdcartes-rami compile et se lie sans avertissement.
--exporter-cartes écrit un fichier de 637 ko, lisible.

<sub>Filed by prel from the completed plans at commit time.</sub>