CoolFace
Apppublic

Chiptuned/pokerbaguette-calculateurs

sourceHugging Faceotherupdated 3mo agoView on Hugging Face
0likes
App README

Pokerbaguette — les calculateurs

Tout ce que pokerbaguette.com affirme est dérivé, pas affirmé. Ce Space expose les solveurs du dossier calculs/ du repo pokerbaguette : chaque onglet laisse l'utilisateur recalculer lui-même les chiffres du site, lire le code qui calcule (accordéon « Voir le code du solveur », extrait par inspect.getsource) et, quand une valeur vient d'un cache, la recalculer pour de vrai d'un clic.

L'app est multipage — deux liens à partager :

  • —Blackjack : <https://chiptuned-pokerbaguette-calculateurs.hf.space/>
  • —Ultimate (UTH) : <https://chiptuned-pokerbaguette-calculateurs.hf.space/uth>

Périmètre : les chiffres sont publics, la stratégie est dans la masterclass

Le Space recalcule tous les chiffres publics du site (seuils, edges, assurance, 4x vs 3x, coûts par profil, taux horaires, dénombrements). La stratégie — table de stratégie de base complète, charte préflop 169 mains, règle des 21 outs, comptage — est enseignée dans la masterclass pokerbaguette et n'est volontairement pas publiée ici. Toutes les affirmations de la page publique « Comment gagner » (/win) restent vérifiables sur le Space.

Page / — Blackjack (art. 55-4)

ongletsolveur d'originece qu'on recalcule
Jackpot « 7 »calculs/seuils-jackpots/blackjack_jp1_seuil.pyEV et seuils exacts des DEUX compteurs ; règle majeur + 4,5 × mineur (seuil 157 903 € @5 €)
Edge du jeu de basecalculs/blackjack/blackjack_base_edge.pyedge exact −0,4165 % / −0,5348 % (DAS/non) + EV de l'assurance (−23/311 ≈ −7,4 %) — la table de stratégie n'est pas publiée
Taux horairesolvers/taux_horaire.py (modèle validé par calculs/seuils-jackpots/verif_taux_horaire.py)EV en €/h selon compteurs/mise/cadence + quantiles 10/50/90 des sessions (la médiane d'une session reste perdante même au-dessus du seuil : c'est le jackpot rare qui paie)

Page /uth — Ultimate (art. 55-20)

ongletsolveur d'originece qu'on recalcule
Jackpot Ultimatecalculs/seuils-jackpots/ultimate_progressif_seuil.pyseuil J* ≈ 79 144 €, effet des lots fixes et de la consolation
Taux horairesolvers/taux_horaire.py (modèle validé)EV en €/h selon jackpot/cadence + quantiles 10/50/90 des sessions
Profils de joueurscalculs/uth/uth_sim.pyEV par profil (charte 4x, timide 3x — le « 4x divise les pertes par plus de 4 » —, station, passif) ; le code de la charte n'est pas publié
Dénombrements 7 cartescalculs/commun/freq7.pyfréquences exactes des C(52,7) = 133 784 560 mains — cache affiché et bouton « Recalculer pour de vrai » (énumération complète réelle ou échantillon + IC95, avec estimation de durée mesurée)

Architecture

  • —app.py — l'interface Gradio multipage (gr.Blocks + demo.route("Ultimate (UTH)", "/uth")), en français. Sous chaque onglet, l'accordéon « Voir le code du solveur » affiche le source réel des modules via inspect.getsource.
  • —solvers/ — le code des solveurs, copié depuis calculs/ pour que le Space soit autonome (pas d'import relatif fragile vers le repo). Chaque module porte en en-tête sa provenance : resynchroniser via le repo si calculs/ évolue.
  • —freq7_calc.py — adapté de calculs/commun/freq7.py : énumération chunkée mono-processus avec progression + mode échantillon (le recalcul réel).
  • —taux_horaire.py — adapté de calculs/seuils-jackpots/verif_taux_horaire.py (le modèle net = jackpots − coûtparmain × mains, validé par simulation) : EV €/h et quantiles de sessions, paytables importées des modules de seuils.
  • —solvers/freq7.json — le cache des fréquences 7 cartes (valeurs exactes produites par calculs/commun/freq7.py, validées contre la littérature — Brian Alspach). Le tableau par défaut de l'onglet Dénombrements est étiqueté comme cache, et le bouton « Recalculer pour de vrai » ré-énumère réellement les 133 784 560 mains (~40 s mesurés sur un laptop récent, plusieurs minutes sur le CPU gratuit — l'app mesure et affiche l'estimation avant de lancer).

Adaptations pour le CPU gratuit (2 vCPU)

  • —Simulation UTH plafonnée à 200 000 donnes (solvers/uth_sim.py, NB_MAX) et au plus 2 processus (repli séquentiel si le multiprocessing est indisponible). La précision publiée dans calculs/uth/resultats.md vient de runs à 20 M de donnes sur 10 cœurs — le Space le rappelle à l'écran.
  • —Simulation de sessions (taux horaire) plafonnée avec le pattern « ⏳ Calcul en cours… » + barre de progression.
  • —Les calculs exacts (combinatoire en fractions, solveur blackjack DP) sont quasi instantanés et mis en cache (functools.lru_cache) — aucune valeur affichée comme résultat n'est codée en dur.

Run local

bash
pip install -r requirements.txt
python app.py          # http://127.0.0.1:7860/  (Blackjack)
                       # http://127.0.0.1:7860/uth  (Ultimate)

Licence

© 2026 Pokerbaguette (pokerbaguette.com) — Vincent Fraillon. Tous droits non expressément concédés sont réservés.

Code et contenus du Space sous [PolyForm Noncommercial 1.0.0](LICENSE.md) — une licence source-available NON permissive :

  • —✅ autorisé (non commercial uniquement) : consulter le code, exécuter les calculateurs, vérifier les chiffres du site, partager le Space à l'identique (recherche personnelle, éducation, journalisme…) ;
  • —❌ interdit sans accord écrit : tout usage commercial — réutiliser ces solveurs dans une formation/masterclass concurrente, un produit, un service, un outil interne d'exploitation, ou en revendre des dérivés.

Pourquoi elle plutôt que CC BY-NC-ND : PolyForm est rédigée pour du logiciel (licence de brevet incluse, définition précise de l'usage non commercial), là où les Creative Commons se déconseillent elles-mêmes pour du code.

Déploiement sur Hugging Face Spaces

Le Space existe : https://huggingface.co/spaces/Chiptuned/pokerbaguette-calculateurs (le front-matter YAML en tête de ce README le configure — licence Other → LICENSE.md, SDK Gradio, CPU basic gratuit).

Pour pousser (authentification : token write de <https://hf.co/settings/tokens>) : cloner le Space et y recopier le contenu de CE dossier — ne jamais faire de `git remote add` ici : ce dossier vit dans le repo privé pokerbaguette, un `git push` depuis le repo enverrait tout le code privé sur le Space public.

bash
cd deliverables/solvers-space
git clone https://huggingface.co/spaces/Chiptuned/pokerbaguette-calculateurs /tmp/pb-space
cp -R app.py requirements.txt README.md LICENSE.md solvers /tmp/pb-space/
rm -rf /tmp/pb-space/solvers/__pycache__
cd /tmp/pb-space && git add -A && git commit -m "Pokerbaguette — les calculateurs" && git push

(Alternative sans git : onglet « Files » du Space → « Upload files » → glisser app.py, requirements.txt, README.md, LICENSE.md et le dossier solvers/.)

Le Space builde et démarre seul (~2 min). Vérifier ensuite les deux pages — <https://chiptuned-pokerbaguette-calculateurs.hf.space/> et <https://chiptuned-pokerbaguette-calculateurs.hf.space/uth> — contre les valeurs de référence des resultats.md (elles sont rappelées dans l'interface, étiquetées comme références).