pdulvp.fr

La plaque « Vous » à la facture des plaques d'en face has been fixed.

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

  • votre plaque prend le dessin des autres : médaillon à gauche, nom, score en

or à droite, et OUVERT / FERMÉ en pastille au lieu d'un texte nu

  • le médaillon porte l'initiale du profil et aucune marque -- les six marques

sont ce qui sépare les six adversaires ; un emblem négatif passé à
drawRivalEmblem() vaut désormais « pas de marque »

  • le mot reste Vous et non le nom du profil : la plaque dit ce qu'elle est,

le médaillon dit qui la tient

  • kMinePlaqueHeight : 60 pixels réservés dans la colonne au lieu de 44, pris

sur l'écart entre les deux tas, qui retombe sur son plancher de 24 -- le
score y était coupé en bas

  • l'initiale d'un médaillon sans marque ne descend plus : le décalage de six

centièmes existe pour passer sous la marque, et suit donc la marque

  • le médaillon de la plaque Vous est posé en haut, son bord et celui du nom

sur la même ligne, comme sur les plaques d'en face

  • l'enseigne LE TAPIS est écrite dans le tapis et en haut, comme PIOCHE

dans sa colonne : les deux tombent sur la même ligne, et elle ne passe plus
sous la plaque de gauche -- les combinaisons commencent sous sa bande

  • kTapisLabelPad : l'enseigne LE TAPIS recule de six pixels, ce qui la

range sur les faces des cartes au lieu de l'écart entre le cadre d'un groupe
et sa première carte

La plaque « Vous » à la facture des autres

<sub>2026-10-24-1210-la-plaque-vous-a-la-facture-des-autres.md — 2026-10-24 12:10</sub>

Sous la défausse, votre plaque ne ressemble à aucune de celles d'en face :
pas de médaillon, le mot FERMÉ posé en texte nu là où les adversaires le
portent en pastille, et un score en 17 pixels dans une boîte qui n'en fait pas
toujours la place -- il est coupé en bas, ce qui se voit sur tous les rendus.

Elle reprend la facture des autres : médaillon à gauche, nom, score à droite,
et la pastille FERMÉ / OUVERT en bas à droite. Le médaillon porte
l'initiale du profil ; le nom reste Vous, qui dit ce que la plaque est, là
où le nom du profil dirait seulement qui le tient.

Ce qu'elle n'a pas et n'aura pas : les étoiles, la jauge et le tas de cartes
en main. Ils disent ce qu'un adversaire a appris et ce qui lui reste -- deux
choses que, de vous, vous savez déjà.

Décisions

  • La hauteur réservée passe de 44 à 60 pixels. Mesuré sur le rendu : la

plaque reçoit 48 pixels à la taille d'ouverture, et le médaillon avec ses
deux lignes en demande 38 utiles, soit 50 avec ses marges. C'est pris sur
l'écart entre les deux tas, qui retombe sur son plancher de 24 au lieu de
36 -- la plaque était coupée, les tas ne se touchent pas.

  • Les corps sont ceux des plaques d'en face. kPlaqueNameSize,

kPlaqueScoreSize, kPlaqueBadgeSize, et plaqueTextSize() pour la
réduction, avec la hauteur pleine de cette plaque-ci comme référence.

  • Le médaillon n'a pas de marque. drawRivalEmblem en dessine une parmi

six, et c'est elle qui distingue les six : vous n'êtes pas l'un d'eux. Un
emblème négatif vaut désormais « pas de marque », ce qui ne change rien aux
appelants, qui passent tous 0 à 5.

Étapes

  1. [x] src/CardArt.cpp -- un emblème négatif ne dessine pas de marque.
  2. [x] src/TableView.cpp -- la réserve de 44 passe à 60 dans relayout().
  3. [x] src/TableView.cpp -- paintStacks() : médaillon, nom, score,

pastille, aux corps des plaques d'en face.

  1. [x] Bâtir en série, et rendre la table hors écran : la plaque entière, et

les deux tas qui ne se touchent pas.

Vérifié

La table à six rendue hors écran à la taille d'ouverture. La plaque Vous
porte son médaillon à l'initiale du profil, sans marque, le mot Vous, le
score en or à droite sur la même ligne, et la pastille FERMÉ en bas à
droite. Rien n'est coupé. Posée à côté de celle de Lulu, c'est le même objet
en plus petit.

L'écart entre les deux tas est retombé de 36 à 24 pixels, son plancher : le
compte de cartes sous la pioche et l'enseigne DÉFAUSSE restent séparés.
C'est le prix des 12 pixels rendus à la plaque, et il est payé là où il se
voit le moins.

Le médaillon de la plaque « Vous » : l'initiale et la ligne du haut

<sub>2026-10-24-1255-le-medaillon-de-la-plaque-vous.md — 2026-10-24 12:55</sub>

Sur la plaque Vous, le P du médaillon est posé un peu bas. drawRivalEmblem()
décale l'initiale de six centièmes du médaillon vers le bas -- pour qu'elle ne
monte pas dans la marque posée en haut du cercle. Le médaillon sans marque,
introduit avec cette plaque, hérite du décalage sans avoir la marque qui le
justifie.

Demandé dans la foulée : le médaillon est centré en hauteur, là où celui d'un
adversaire est posé en haut de sa plaque. Le bord haut du cercle et celui du
nom doivent être la même ligne -- c'est elle qu'on reconnaît d'une plaque à
l'autre.

Décisions

  • Le décalage suit la marque, pas le médaillon. Il ne se supprime pas :

les six en ont besoin. Il devient nul quand il n'y a rien à éviter.

Étapes

  1. [x] src/CardArt.cpp -- le décalage de l'initiale conditionné à la marque.
  2. [x] src/TableView.cpp -- le médaillon de la plaque Vous posé en haut.
  3. [x] Bâtir en série, et regarder les deux médaillons de près.

Vérifié

Les deux médaillons rendus hors écran et agrandis. Sur la plaque Vous, le
P est au milieu de son cercle et le haut du cercle tombe sur le haut du mot
Vous. Sur celle de Lulu, rien n'a bougé : l'étoile en haut, le L dessous,
décalé comme avant.

L'enseigne « Le tapis » sur la ligne de « Pioche »

<sub>2026-10-24-1430-l-enseigne-le-tapis-sur-la-ligne-de-pioche.md — 2026-10-24 14:30</sub>

LE TAPIS est écrite vingt-sept pixels au-dessus du tapis
(m_tapis.top() - kStackLabel), et il n'y a que dix pixels de libres
au-dessus : l'enseigne tombe donc dans la rangée des plaques et passe sous
celle de gauche. PIOCHE, elle, est écrite dans sa colonne, en haut
(m_stacks.top()), la colonne réservant la bande sous elle avant de poser sa
première carte.

Les deux bandes sont donc à deux hauteurs différentes, et l'une des deux
mord sur ce qui la précède. Le tapis fait comme la colonne : l'enseigne en
haut de la bande, et les combinaisons sous elle.

Décisions

  • C'est le tapis qui s'aligne sur la colonne, et non l'inverse. La

colonne a déjà la bonne façon de faire -- l'enseigne dans la boîte, la
place réservée dessous -- et c'est elle qui donne la ligne que les deux
partagent : m_tapis.top() et m_stacks.top() sont le même nombre.

  • Les combinaisons descendent de kStackLabel au lieu de six pixels.

C'est ce que la bande occupe, kStackLabelAir compris : la même réserve que
m_stockBox prend dans la colonne. Le tapis perd vingt pixels de haut, ce
que la boucle qui réduit les cartes absorbe.

  • La ligne « Rien de posé » se centre sous l'enseigne, pas dans le tapis

entier, pour ne pas remonter vers elle.

Étapes

  1. [x] src/TableView.cpp -- paintMelds() : l'enseigne à m_tapis.top(),

et la ligne du tapis vide centrée sous elle.

  1. [x] src/TableView.cpp -- layoutMelds() : les combinaisons commencent

sous la bande de l'enseigne.

  1. [x] Bâtir en série, et rendre la table à six et en tête-à-tête : les deux

enseignes sur la même ligne, et aucune sous une plaque.

Vérifié

Trois rendus hors écran :

  • à six, tapis vide : LE TAPIS et PIOCHE sur la même ligne, à vingt-cinq

pixels sous les plaques, qui n'en touchent plus aucune.

  • en tête-à-tête, où la plaque unique est centrée et descend au même endroit :

l'enseigne passe dessous sans la rencontrer.

  • une manche jouée au cerveau jusqu'à douze combinaisons posées, pour voir le

cas qui comptait : les trois rangées commencent sous l'enseigne, la première
à huit pixels de sa bande, et la réduction des cartes n'a pas eu à descendre
d'un cran pour les faire tenir.

Ce qui a servi à vérifier

Un troisième harnais jetable, dans le bac à sable : il monte une Rami à six,
passe tous les sièges -- le vôtre compris -- par chooseMove() jusqu'à ce que
le tapis porte ce qu'on lui demande, puis rend une TableView hors écran.
C'est ce qui manquait aux deux premiers, qui ne savaient montrer qu'une table
au premier tour, donc toujours vide.

Six pixels de plus devant « Le tapis »

<sub>2026-10-24-1445-six-pixels-de-plus-sous-le-tapis.md — 2026-10-24 14:45</sub>

L'enseigne commence à huit pixels du bord du tapis. Demandé : six de plus.

Mesuré sur le rendu, c'est aussi ce qui la pose sur les cartes plutôt qu'entre
elles -- le cadre d'un groupe de combinaisons commence à six pixels du bord et
la face de sa première carte à onze ; l'enseigne à huit tombait dans l'écart,
à quatorze elle se range sur les faces.

Étapes

  1. [x] src/TableView.cpp -- paintMelds() : l'enseigne à quatorze pixels.
  2. [x] Bâtir en série, et regarder le bord gauche.

Vérifié

Le bord gauche agrandi quatre fois, sur un tapis de douze combinaisons :
l'enseigne commence à vingt-huit pixels du bord de la fenêtre, la face de la
première carte à vingt-six. Les deux se lisent sur la même verticale, à deux
pixels près.

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