{"id":3964,"date":"2026-07-10T16:34:12","date_gmt":"2026-07-10T16:34:12","guid":{"rendered":"https:\/\/www.chess.lumn.eu\/wordpress\/?p=3964"},"modified":"2026-10-17T15:55:55","modified_gmt":"2026-10-17T15:55:55","slug":"fritz-sous-gui-alternatives","status":"publish","type":"post","link":"https:\/\/www.chess.lumn.eu\/wordpress\/2026\/07\/10\/fritz-sous-gui-alternatives\/","title":{"rendered":"UPDATE: Chessbase engines sous autres GUI"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3964\" class=\"elementor elementor-3964\">\n\t\t\t\t\t\t<div class=\"elementor-inner\">\n\t\t\t\t<div class=\"elementor-section-wrap\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b7bf6e2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b7bf6e2\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d3145fb\" data-id=\"d3145fb\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-391c71f elementor-widget elementor-widget-html\" data-id=\"391c71f\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=DM+Serif+Display:ital@0;1&family=DM+Sans:ital,opsz,wght@0,9..40,300..700;1,9..40,400&family=JetBrains+Mono:wght@400;500;700&display=swap\" rel=\"stylesheet\">\n<style>\n  .naum-body{\n    --creme:#f7f4ee; --encre:#2b2b2b; --rouge:#c0392b;\n    --or:#b8863b; --trait:#e3ddd0; --gris:#6b665c;\n    max-width:900px; margin:0 auto; padding:64px 28px 120px;\n    background:var(--creme); color:var(--encre);\n    font-family:'DM Sans',system-ui,sans-serif; font-weight:400;\n    font-size:18px; line-height:1.72; -webkit-font-smoothing:antialiased;\n  }\n  .naum-body, .naum-body *{box-sizing:border-box;}\n\n  .naum-body h1{font-family:'DM Serif Display',serif; font-weight:400; font-size:2.9rem;\n     line-height:1.08; letter-spacing:-.5px; margin:0 0 .35em; color:var(--encre);}\n  .naum-body h2{font-family:'DM Serif Display',serif; font-weight:400; font-size:1.85rem;\n     line-height:1.15; letter-spacing:-.3px; margin:2.6em 0 .5em; padding-bottom:.25em;\n     border-bottom:2px solid var(--rouge); color:var(--encre);}\n  .naum-body h3{font-family:'DM Sans',sans-serif; font-weight:700; font-size:1.1rem;\n     letter-spacing:.2px; text-transform:uppercase; margin:1.8em 0 .4em; color:var(--rouge);}\n  .naum-body .eyebrow{font-family:'JetBrains Mono',monospace; font-size:.78rem; letter-spacing:3px;\n     text-transform:uppercase; color:var(--or); margin:0 0 1.2em;}\n  .naum-body .chapeau{font-size:1.22rem; line-height:1.6; color:var(--gris); font-style:italic;\n     margin:0 0 2.4em; padding-left:1.1em; border-left:3px solid var(--or);}\n  .naum-body p{margin:0 0 1.15em;}\n  .naum-body a{color:var(--rouge); text-decoration:none; border-bottom:1px solid rgba(192,57,43,.35);}\n  .naum-body a:hover{border-bottom-color:var(--rouge);}\n  .naum-body strong{font-weight:700;}\n  .naum-body code{font-family:'JetBrains Mono',monospace; font-size:.85em; background:#efe9dd;\n     padding:.08em .35em; border-radius:3px; color:#7a3b2e;}\n  .naum-body ul,.naum-body ol{margin:0 0 1.2em; padding-left:1.35em;}\n  .naum-body li{margin:.4em 0;}\n\n  .naum-body ol.etapes{list-style:none; padding-left:0; counter-reset:et;}\n  .naum-body ol.etapes>li{counter-increment:et; position:relative; padding-left:52px; margin:1.1em 0;}\n  .naum-body ol.etapes>li::before{content:counter(et); position:absolute; left:0; top:-2px;\n     width:34px; height:34px; border-radius:50%; background:var(--rouge); color:#fff;\n     font-family:'JetBrains Mono',monospace; font-weight:700; font-size:1rem;\n     display:flex; align-items:center; justify-content:center;}\n\n  .naum-body .box{border-radius:8px; padding:18px 22px; margin:1.6em 0; font-size:.97rem; line-height:1.62;}\n  .naum-body .box .box-titre{font-family:'JetBrains Mono',monospace; font-size:.72rem; letter-spacing:2px;\n     text-transform:uppercase; display:block; margin-bottom:.5em; font-weight:700;}\n  .naum-body .naum-note-box{background:#f3ecda; border:1px solid #ddd0ab;}\n  .naum-body .naum-note-box .box-titre{color:#9a7b2e;}\n  .naum-body .naum-alert-box{background:#fbeae7; border:1px solid #e8b6ac;}\n  .naum-body .naum-alert-box .box-titre{color:var(--rouge);}\n  .naum-body .naum-coherence-box{background:#e9f2e6; border:1px solid #b6d3ab;}\n  .naum-body .naum-coherence-box .box-titre{color:#4e7a3b;}\n\n  .naum-body .tbl-wrap{overflow-x:auto; margin:1.6em 0;}\n  .naum-body table{border-collapse:collapse; width:100%; font-size:.9rem; background:transparent;}\n  .naum-body th,.naum-body td{border:1px solid var(--trait); padding:10px 13px; text-align:left; vertical-align:top;}\n  .naum-body th{background:#efe9dd; font-weight:700; letter-spacing:.3px;}\n  .naum-body tbody tr:nth-child(even){background:#faf7f0;}\n  .naum-body .ok{color:#4e7a3b; font-weight:700;}\n  .naum-body .taille{font-family:'JetBrains Mono',monospace; font-size:.86em; white-space:nowrap;}\n\n  .naum-body .champ{font-family:'JetBrains Mono',monospace; font-size:.82rem; background:#20232a;\n     color:#e6e1d6; padding:14px 18px; border-radius:6px; margin:.6em 0; overflow-x:auto;\n     border-left:3px solid var(--or);}\n  .naum-body .champ b{color:#e8b17a; font-weight:700;}\n\n  .naum-body .dl-zone{background:#20232a; border-radius:12px; padding:34px 30px; margin:2.2em 0;\n     text-align:center; color:#e6e1d6;}\n  .naum-body .dl-zone h3{color:#e8b17a; margin:0 0 .3em;}\n  .naum-body .dl-zone p{color:#b7b1a4; font-size:.95rem; margin:0 0 1.4em;}\n  .naum-body .dl-button{font-family:'DM Sans',sans-serif; font-weight:700; font-size:1.05rem;\n     background:var(--rouge); color:#fff; border:none; padding:15px 34px; border-radius:8px;\n     cursor:pointer; letter-spacing:.3px; transition:transform .12s ease, background .2s ease;}\n  .naum-body .dl-button:hover{background:#a5301f; transform:translateY(-2px);}\n  .naum-body .dl-button:active{transform:translateY(0);}\n  .naum-body .dl-sub{font-family:'JetBrains Mono',monospace; font-size:.74rem; color:#8a857a; margin-top:1em;}\n\n  .naum-body hr{border:none; border-top:1px solid var(--trait); margin:3em 0;}\n  .naum-body .sig{font-family:'JetBrains Mono',monospace; font-size:.78rem; color:var(--gris);\n     text-align:right; margin-top:3.5em;}\n\n  @media (max-width:600px){\n    .naum-body{font-size:16px; padding:44px 18px 90px;}\n    .naum-body h1{font-size:2.1rem;}\n    .naum-body h2{font-size:1.45rem;}\n  }\n<\/style>\n<article class=\"naum-body\">\n\n  <p class=\"eyebrow\">Laboratoire &middot; moteurs d'\u00e9checs classiques<\/p>\n  <h1>Faire rejouer les moteurs classiques<\/h1>\n  <p class=\"chapeau\">\n    Fritz, Junior, Shredder, Nimzo, Hiarcs &mdash; les grands moteurs de 1997 \u00e0 2005 sont\n    enferm\u00e9s dans le logiciel ChessBase qui les a vus na\u00eetre. Deux petits ponts les lib\u00e8rent :\n    ils les font passer pour des moteurs UCI ordinaires, afin qu'on puisse enfin les faire jouer\n    dans les interfaces modernes et mesurer ce qu'ils valent vraiment.\n  <\/p>\n\n  <h2>Ce qu'on cherche \u00e0 faire<\/h2>\n  <p>\n    Un moteur d'\u00e9checs moderne est un programme autonome qui dialogue en texte, selon un\n    langage universel appel\u00e9 <strong>UCI<\/strong> : l'interface lui envoie une position, il\n    r\u00e9pond son coup. C'est ce langage que parlent toutes les interfaces d'aujourd'hui, et c'est\n    lui qui permet de faire s'affronter des moteurs de toutes origines.\n  <\/p>\n  <p>\n    Les vieux moteurs ChessBase, eux, ne fonctionnent pas ainsi. Ce ne sont pas des programmes\n    autonomes mais des <strong>modules internes<\/strong> : seul le logiciel d'origine sait les\n    charger et les faire parler. Impossible, tel quel, de les brancher sur une interface\n    moderne &mdash; ils restent muets. C'est d'ailleurs pour cette raison qu'ils sont absents\n    des grandes listes de classement modernes, qui ne testent que des moteurs autonomes.\n  <\/p>\n  <p>\n    L'id\u00e9e des ponts est de <strong>se glisser \u00e0 la place du logiciel d'origine<\/strong>. Le\n    programme charge le vieux moteur, lui parle exactement comme le faisait le logiciel\n    d'\u00e9poque, r\u00e9cup\u00e8re le coup choisi, puis le retraduit en UCI. Vu de l'ext\u00e9rieur, le vieux\n    moteur devient un moteur UCI comme les autres.\n  <\/p>\n  <div class=\"box naum-note-box\">\n    <span class=\"box-titre\">Pourquoi le faire<\/span>\n    Pour donner \u00e0 ces moteurs historiques une place dans une \u00e9chelle de calibration Elo :\n    les faire jouer des centaines de parties contre des r\u00e9f\u00e9rences, mesurer leur force r\u00e9elle,\n    et comparer les g\u00e9n\u00e9rations. Sans ces ponts, ils resteraient \u00e0 jamais prisonniers de leur\n    logiciel d'origine.\n  <\/div>\n\n  <h2>Deux ponts, seize moteurs<\/h2>\n  <p>\n    Les moteurs ChessBase ne sont pas tous b\u00e2tis pareil, d'o\u00f9 <strong>deux outils<\/strong> :\n  <\/p>\n  <ul>\n    <li><strong><code>eng2uci.py<\/code><\/strong> &mdash; pour les moteurs livr\u00e9s sous forme de\n      fichier <code>.eng<\/code> (Fritz, Deep Fritz, Junior, les Tiger, Hiarcs, Nimzo).\n      Il reconna\u00eet le moteur <strong>\u00e0 la taille exacte du fichier<\/strong>.<\/li>\n    <li><strong><code>shredder2uci.py<\/code><\/strong> &mdash; pour Shredder&nbsp;5.32,\n      Shredder&nbsp;6 et Shredder&nbsp;7, qui exposent directement une biblioth\u00e8que\n      <code>.dll<\/code> et se pilotent d'une tout autre fa\u00e7on.<\/li>\n  <\/ul>\n\n  <h2>Les moteurs pris en charge<\/h2>\n  <p>\n    Tous tournent d\u00e9sormais comme des moteurs UCI natifs &mdash; coups l\u00e9gaux, promotions,\n    roques, prise en passant, d\u00e9tection des r\u00e9p\u00e9titions et de la r\u00e8gle des cinquante coups, et\n    depuis septembre 2026 <strong>gestion autonome de la pendule<\/strong> (voir plus bas).\n    La colonne <em>taille<\/em> est essentielle : c'est elle qui sert d'identification.\n  <\/p>\n  <div class=\"tbl-wrap\">\n  <table>\n    <thead>\n      <tr><th>Moteur<\/th><th>Fichier<\/th><th class=\"taille\">Taille (octets)<\/th><th>\u00c9tat<\/th><th>\u00c0 savoir<\/th><\/tr>\n    <\/thead>\n    <tbody>\n      <tr><td><strong>Fritz 5.32<\/strong><\/td><td><code>.eng<\/code><\/td><td class=\"taille\">126&nbsp;976<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>Le doyen (1997). Format interne un peu diff\u00e9rent des suivants.<\/td><\/tr>\n      <tr><td><strong>Fritz 6<\/strong><\/td><td><code>.eng<\/code><\/td><td class=\"taille\">311&nbsp;296<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>La premi\u00e8re version mise au point, r\u00e9f\u00e9rence de tout le reste.<\/td><\/tr>\n      <tr><td><strong>Fritz 7<\/strong><\/td><td><code>.eng<\/code><\/td><td class=\"taille\">434&nbsp;176<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>\u00c9valuations et meilleur coup lus dans le canal de rapport du moteur.<\/td><\/tr>\n      <tr><td><strong>Fritz 8<\/strong><\/td><td><code>.eng<\/code><\/td><td class=\"taille\">471&nbsp;040<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>M\u00eame base que la 7.<\/td><\/tr>\n      <tr><td><strong>Fritz 9<\/strong><\/td><td><code>.eng<\/code><\/td><td class=\"taille\">446&nbsp;464<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>R\u00e9clame <code>MSVCR71.dll<\/code> et v\u00e9rifie la pr\u00e9sence du CD &mdash; les deux sont g\u00e9r\u00e9s.<\/td><\/tr>\n      <tr><td><strong>Deep Fritz 8<\/strong><\/td><td><code>.eng<\/code> + <code>.dll<\/code><\/td><td class=\"taille\">487&nbsp;424<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>Multiprocesseur, mesur\u00e9 en 1, 4 et 8 threads. <strong>Les noms de fichiers doivent contenir des\n        espaces<\/strong> (<code>Deep Fritz 8.eng<\/code>) : la coquille se cherche elle-m\u00eame sous ce nom.<\/td><\/tr>\n      <tr><td><strong>Junior 7<\/strong><\/td><td><code>.eng<\/code> + <code>.dll<\/code><\/td><td class=\"taille\">212&nbsp;992<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>M\u00eame taille que la 8 : distingu\u00e9s automatiquement par une signature interne.<\/td><\/tr>\n      <tr><td><strong>Junior 8<\/strong><\/td><td><code>.eng<\/code> + <code>.dll<\/code><\/td><td class=\"taille\">212&nbsp;992<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>\u00c0 piloter au temps, jamais en <code>go depth<\/code>.<\/td><\/tr>\n      <tr><td><strong>Hiarcs 7.32<\/strong><\/td><td><code>.eng<\/code> + <code>.dll<\/code><\/td><td class=\"taille\">155&nbsp;648<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>Protection par contr\u00f4le de volume, contourn\u00e9e.<\/td><\/tr>\n      <tr><td><strong>Hiarcs 8<\/strong><\/td><td><code>.eng<\/code> + <code>.dll<\/code><\/td><td class=\"taille\">245&nbsp;760<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>Trois contr\u00f4les successifs \u00e0 l'initialisation, tous neutralis\u00e9s.<\/td><\/tr>\n      <tr><td><strong>Nimzo 8<\/strong><\/td><td><code>.eng<\/code> + <code>.dll<\/code><\/td><td class=\"taille\">202&nbsp;240<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>Le fichier <code>Nimzo_8.cmp<\/code> n'est pas un ex\u00e9cutable mais la base de\n        combinaisons : il doit simplement rester \u00e0 c\u00f4t\u00e9 du <code>.eng<\/code>.<\/td><\/tr>\n      <tr><td><strong>Chess Tiger 15.0<\/strong><\/td><td><code>.eng<\/code> + <code>.dll<\/code><\/td><td class=\"taille\">114&nbsp;688<\/td><td>Jouable<\/td>\n        <td>Le plus fiable des deux Tiger, mais \u00e9cart\u00e9 de l'\u00e9chelle de calibration (voir encadr\u00e9).<\/td><\/tr>\n      <tr><td><strong>Gambit Tiger 2.0<\/strong><\/td><td><code>.eng<\/code> + <code>.dll<\/code><\/td><td class=\"taille\">98&nbsp;304<\/td><td>Instable<\/td>\n        <td>Se corrompt de lui-m\u00eame sur certaines positions ; \u00e9cart\u00e9 de la calibration.<\/td><\/tr>\n      <tr><td><strong>Shredder 5.32<\/strong><\/td><td><code>.dll<\/code><\/td><td class=\"taille\">&mdash;<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>Pilot\u00e9 par <code>shredder2uci.py<\/code> (pas par <code>eng2uci.py<\/code>).<\/td><\/tr>\n      <tr><td><strong>Shredder 6<\/strong><\/td><td><code>.dll<\/code><\/td><td class=\"taille\">&mdash;<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>Idem. Multi-thread d'origine, ramen\u00e9 \u00e0 un seul processeur pour des mesures comparables.<\/td><\/tr>\n      <tr><td><strong>Shredder 7<\/strong><\/td><td><code>.dll<\/code><\/td><td class=\"taille\">307&nbsp;200<\/td><td class=\"ok\">Publi\u00e9<\/td>\n        <td>Contr\u00f4le du CD contourn\u00e9. Longtemps pilot\u00e9 par la coquille <code>.eng<\/code>, il est\n        pass\u00e9 en septembre 2026 sur <code>shredder2uci.py<\/code>, qui lui donne enfin sa pendule.<\/td><\/tr>\n    <\/tbody>\n  <\/table>\n  <\/div>\n\n  <div class=\"box naum-alert-box\">\n    <span class=\"box-titre\">Important : la taille fait foi<\/span>\n    <p style=\"margin:.4em 0 .8em;\">\n      Il a circul\u00e9 <strong>plusieurs \u00e9ditions d'un m\u00eame Fritz<\/strong> (versions localis\u00e9es,\n      mises \u00e0 jour, r\u00e9\u00e9ditions), qui n'ont pas toutes exactement la m\u00eame taille de fichier.\n      Le pont identifie le moteur <em>par sa taille<\/em> : si votre fichier ne fait pas le\n      compte \u00e0 l'octet pr\u00e8s, il s'arr\u00eatera avec un message du type\n      &laquo;&nbsp;taille non reconnue&nbsp;&raquo; suivi de la liste des tailles connues.\n    <\/p>\n    <p style=\"margin:0;\">\n      Ce n'est pas un \u00e9chec : cela signifie simplement que votre \u00e9dition n'a pas encore \u00e9t\u00e9\n      analys\u00e9e. Les rep\u00e8res internes diff\u00e8rent d'une \u00e9dition \u00e0 l'autre, et les reprendre\n      demande une passe d'analyse d\u00e9di\u00e9e. V\u00e9rifiez la taille exacte par un clic\n      droit &rarr; Propri\u00e9t\u00e9s sur le fichier <code>.eng<\/code>.\n    <\/p>\n  <\/div>\n\n  <h2>T\u00e9l\u00e9charger les ponts<\/h2>\n\n  <div class=\"dl-zone\">\n    <h3>eng2uci.py<\/h3>\n    <p>Le pont principal, en un seul fichier. G\u00e8re les treize moteurs \u00e0 fichier <code>.eng<\/code> :\n       les cinq Fritz, Deep Fritz 8, les deux Junior, les deux Hiarcs, Nimzo 8\n       et les deux Tiger.<\/p>\n    <button id=\"dl-eng\" class=\"dl-button\">&#x2193;&nbsp;&nbsp;T\u00e9l\u00e9charger eng2uci.py<\/button>\n    <div class=\"dl-sub\">script Python &middot; \u00e0 placer dans le dossier du moteur<\/div>\n  <\/div>\n\n  <div class=\"dl-zone\">\n    <h3>shredder2uci.py<\/h3>\n    <p>Le pont d\u00e9di\u00e9 \u00e0 Shredder&nbsp;5.32, Shredder&nbsp;6 et Shredder&nbsp;7, qui se pilotent\n       directement par leur biblioth\u00e8que <code>.dll<\/code>.<\/p>\n    <button id=\"dl-shr\" class=\"dl-button\">&#x2193;&nbsp;&nbsp;T\u00e9l\u00e9charger shredder2uci.py<\/button>\n    <div class=\"dl-sub\">script Python &middot; \u00e0 placer dans le dossier du moteur<\/div>\n  <\/div>\n\n  <div class=\"box naum-alert-box\">\n    <span class=\"box-titre\">Pr\u00e9requis indispensable<\/span>\n    Ces moteurs sont en <strong>32 bits<\/strong> : il faut donc un <strong>Python 32\n    bits<\/strong> (les versions 64 bits ne pourront pas les charger). Sous Windows,\n    installer Python puis v\u00e9rifier depuis un terminal : <code>py -3-32 --version<\/code> doit\n    r\u00e9pondre sans erreur.\n  <\/div>\n\n  <h3>Le dossier \u00e0 pr\u00e9parer<\/h3>\n  <p>Un dossier par moteur, contenant :<\/p>\n  <ul>\n    <li><code>eng2uci.py<\/code> &mdash; le pont ;<\/li>\n    <li><code>Chess32.dll<\/code> &mdash; le petit relais que les moteurs <code>.eng<\/code> r\u00e9clament ;<\/li>\n    <li>le fichier du moteur, par exemple <code>Fritz 6.eng<\/code> ;<\/li>\n    <li><strong>la DLL associ\u00e9e<\/strong> quand le moteur en a une : <code>Tiger_g.dll<\/code>,\n      <code>Tiger15.dll<\/code>, <code>hiarcs7.dll<\/code>,\n      <code>Hiarcs8.dll<\/code>, <code>Jr_70.dll<\/code>, <code>Jr_80.dll<\/code>,\n      <code>Nimzo_8.dll<\/code>, <code>Deep Fritz 8.dll<\/code> ;<\/li>\n    <li>pour Fritz 9 uniquement : <code>MSVCR71.dll<\/code> ;<\/li>\n    <li>pour Nimzo 8 : <code>Nimzo_8.cmp<\/code>.<\/li>\n  <\/ul>\n  <p>Pour les trois Shredder, le dossier contient <code>shredder2uci.py<\/code> et la DLL du\n     moteur (pas de <code>.eng<\/code>, pas de <code>Chess32.dll<\/code>).<\/p>\n\n  <h2>Utilisation dans Banksia<\/h2>\n  <p>\n    Banksia est l'interface recommand\u00e9e pour jouer et analyser au quotidien : elle pilote les\n    ponts sans configuration exotique.\n  <\/p>\n  <ol class=\"etapes\">\n    <li>Dans Banksia, ouvrir <strong>Engines<\/strong> puis <strong>Add<\/strong>.<\/li>\n    <li>Au champ <strong>Fichier du moteur<\/strong> (l'ex\u00e9cutable), indiquer le chemin du\n      <strong>Python 32 bits<\/strong>, typiquement :\n      <div class=\"champ\">C:\\Users\\...\\Python313-32\\python.exe<\/div><\/li>\n    <li>Au champ <strong>Dossier de travail<\/strong>, indiquer le dossier pr\u00e9par\u00e9.<\/li>\n    <li>Au champ <strong>Ligne de commandes<\/strong>, passer le pont suivi du nom du fichier\n      moteur, entre guillemets s'il contient une espace :\n      <div class=\"champ\">eng2uci.py <b>\"Fritz 6.eng\"<\/b><\/div>\n      &hellip; ou, pour les Shredder :\n      <div class=\"champ\">shredder2uci.py <b>shredder6.dll<\/b><\/div><\/li>\n    <li>Choisir le protocole <strong>UCI<\/strong>, puis valider. Banksia interroge le moteur :\n      il doit r\u00e9pondre son nom et son auteur.<\/li>\n    <li>R\u00e9gler la <strong>taille de hash<\/strong> (512 Mo pour les mesures publi\u00e9es ici),\n      cr\u00e9er un tournoi, choisir la cadence et lancer.<\/li>\n  <\/ol>\n  <div class=\"box naum-note-box\">\n    <span class=\"box-titre\">Deux r\u00e9glages de tournoi \u00e0 ne pas oublier<\/span>\n    D\u00e9sactiver le <strong>pondering<\/strong> (r\u00e9flexion sur le temps de l'adversaire) et fixer\n    la <strong>concurrence \u00e0 1<\/strong>. Ces deux points ne rel\u00e8vent pas des ponts, mais de la\n    validit\u00e9 de toute mesure : voir l'encadr\u00e9 sur la machine plus bas.\n  <\/div>\n\n  <h2>Utilisation dans Arena<\/h2>\n  <p>\n    Arena fonctionne aussi. Comme il pr\u00e9f\u00e8re pointer vers un <strong>lanceur unique<\/strong>, le\n    plus simple est de cr\u00e9er \u00e0 c\u00f4t\u00e9 du moteur un petit fichier <code>lancer.bat<\/code> d'une ligne :\n  <\/p>\n  <div class=\"champ\">py -3-32 eng2uci.py \"Fritz 6.eng\"<\/div>\n  <ol class=\"etapes\">\n    <li>Menu <strong>Engines &rarr; Install New Engine<\/strong>.<\/li>\n    <li>S\u00e9lectionner le <code>lancer.bat<\/code> qu'on vient de cr\u00e9er.<\/li>\n    <li>Quand Arena demande le type de moteur, choisir <strong>UCI<\/strong>.<\/li>\n    <li>V\u00e9rifier que le <strong>dossier de travail<\/strong> pointe bien sur le dossier du moteur.<\/li>\n    <li>Le moteur appara\u00eet dans la liste, pr\u00eat \u00e0 jouer ou \u00e0 analyser.<\/li>\n  <\/ol>\n  <p>\n    Arena reste le plus commode pour une partie contre l'ordinateur ou une analyse ponctuelle.\n    Pour les mesures, on lui pr\u00e9f\u00e8re les deux outils ci-dessous.\n  <\/p>\n\n  <h2>Faire jouer les matchs : cutechess-cli<\/h2>\n  <p>\n    Banksia est parfait pour piloter une partie \u00e0 la main. Pour <em>mesurer<\/em>, on lui pr\u00e9f\u00e8re\n    souvent <strong>cutechess-cli<\/strong> : pas d'interface graphique, tout tient dans une ligne\n    de commande, le tournoi se relance \u00e0 l'identique, et c'est l'outil qui sert de r\u00e9f\u00e9rence aux\n    grandes listes de calibration. Un pont Python s'y d\u00e9clare comme n'importe quel moteur UCI &mdash;\n    il suffit de d\u00e9signer Python comme ex\u00e9cutable et de lui passer le script en argument.\n  <\/p>\n  <div class=\"champ\">@echo off<br>\nsetlocal<br>\nset CC=C:\\Chess\\cutechess\\cutechess-cli.exe<br>\nset PY=C:\\Users\\...\\Python313-32\\python.exe<br>\nset ENG=C:\\Chess\\Engines<br>\nset BOOK=C:\\Chess\\books\\Perfect2023.bin<br>\n<br>\n\"%CC%\" ^<br>\n&nbsp;<b>-engine<\/b> name=\"Fritz 9 UCI py\" cmd=\"%PY%\" arg=eng2uci.py arg=\"Fritz 9.eng\" dir=\"%ENG%\\FRITZ9\" ^<br>\n&nbsp;<b>-engine<\/b> name=\"Ruffian 2.1.0\" cmd=\"%ENG%\\Ruffian\\Ruffian.exe\" dir=\"%ENG%\\Ruffian\" ^<br>\n&nbsp;<b>-each<\/b> proto=uci tc=60\/900 option.Hash=512 timemargin=2000 ^<br>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;book=\"%BOOK%\" bookdepth=8 ^<br>\n&nbsp;<b>-games<\/b> 2 <b>-rounds<\/b> 24 <b>-repeat<\/b> <b>-concurrency<\/b> 1 <b>-recover<\/b> ^<br>\n&nbsp;<b>-pgnout<\/b> serie_fritz9_ruffian.pgn<br>\n<br>\nendlocal<\/div>\n  <p>Ligne par ligne, ce qui compte :<\/p>\n  <ul>\n    <li><code>-engine<\/code> &mdash; un bloc par moteur. Pour un moteur adapt\u00e9, l'ex\u00e9cutable est\n      <strong>Python<\/strong>, et les deux <code>arg=<\/code> passent le pont puis le nom du fichier\n      moteur. Le <code>dir=<\/code> doit pointer sur le dossier pr\u00e9par\u00e9.<\/li>\n    <li><code>-each<\/code> &mdash; ce qui s'applique aux deux : protocole UCI, cadence, taille de\n      hash. Le <code>timemargin<\/code> laisse deux secondes de tol\u00e9rance, indispensable avec des\n      moteurs anciens qui ne v\u00e9rifient l'ordre d'arr\u00eat qu'\u00e0 intervalles.<\/li>\n    <li><code>book<\/code> et <code>bookdepth<\/code> &mdash; les ouvertures impos\u00e9es. Sans elles,\n      deux moteurs d\u00e9terministes rejouent la m\u00eame partie ind\u00e9finiment.<\/li>\n    <li><code>-games 2 -rounds 24 -repeat<\/code> &mdash; 48 parties, chaque ouverture jou\u00e9e deux\n      fois avec les couleurs invers\u00e9es. C'est ce qui neutralise l'avantage des Blancs.<\/li>\n    <li><code>-concurrency 1<\/code> &mdash; <strong>une seule partie \u00e0 la fois<\/strong>. Voir\n      l'encadr\u00e9 sur la machine : ce chiffre n'est pas n\u00e9gociable.<\/li>\n    <li><code>-recover<\/code> &mdash; si un moteur plante, il est relanc\u00e9 pour la partie suivante\n      au lieu d'emporter tout le match.<\/li>\n  <\/ul>\n  <p>\n    Le fichier PGN produit contient, pour chaque coup, l'\u00e9valuation annonc\u00e9e, la profondeur et le\n    temps consomm\u00e9. C'est la mati\u00e8re premi\u00e8re de tout ce qui suit : les scores donnent la cote,\n    mais ce sont les parties elles-m\u00eames qui disent si le moteur joue vraiment comme il devrait.\n  <\/p>\n\n  <hr>\n\n  <p class=\"eyebrow\">Deuxi\u00e8me partie &middot; les r\u00e9sultats<\/p>\n  <h2>Que valent vraiment ces moteurs ?<\/h2>\n  <p>\n    Faire rejouer ces moteurs n'\u00e9tait que la premi\u00e8re moiti\u00e9 du travail. Un moteur peut jouer\n    des coups parfaitement l\u00e9gaux et pourtant ne plus jouer <em>\u00e0 son niveau<\/em>. La seule fa\u00e7on\n    de trancher est la calibration : plusieurs dizaines ou centaines de parties contre des\n    adversaires dont la cote est \u00e9tablie, puis la comparaison avec la version d'origine.\n  <\/p>\n  <p>\n    Toutes les mesures sont faites sur la m\u00eame machine, un Ryzen 9 7950X3D, \u00e0 un seul processeur\n    (sauf pour les multiprocesseurs, trait\u00e9s plus bas), hash de 512 Mo, ouvertures impos\u00e9es. Les\n    cotes et incertitudes cit\u00e9es sont celles du classement au 24 septembre 2026. Les cotes cit\u00e9es sont celles du\n    <a href=\"https:\/\/www.chess.lumn.eu\/wordpress\/2026\/05\/13\/performance-elo\/\">classement du\n    laboratoire<\/a>, recalcul\u00e9es par Ordo sur l'ensemble des parties.\n  <\/p>\n\n  <h3>Treize moteurs adapt\u00e9s au classement<\/h3>\n  <p>\n    Les treize moteurs adapt\u00e9s figurent d\u00e9sormais dans le\n    <a href=\"https:\/\/www.chess.lumn.eu\/wordpress\/2026\/05\/13\/performance-elo\/\">classement du laboratoire<\/a>\n    sous leur cote mesur\u00e9e. Dix d'entre eux ont aussi leur version d'origine dans la liste,\n    calibr\u00e9e dans les m\u00eames conditions : la comparaison est directe. Les moteurs multiprocesseurs\n    sont trait\u00e9s \u00e0 part, plus bas.\n  <\/p>\n  <div class=\"tbl-wrap\">\n  <table>\n    <thead><tr><th>Moteur<\/th><th class=\"taille\">Adapt\u00e9<\/th><th class=\"taille\">Natif<\/th><th class=\"taille\">\u00c9cart<\/th><th>Verdict<\/th><\/tr><\/thead>\n    <tbody>\n      <tr><td><strong>Fritz 7<\/strong><\/td><td class=\"taille\">2893 &plusmn; 15<\/td><td class=\"taille\">2902 &plusmn; 21<\/td><td class=\"taille\">&minus;9<\/td><td class=\"ok\">indiscernables<\/td><\/tr>\n      <tr><td><strong>Hiarcs 7.32<\/strong><\/td><td class=\"taille\">2718 &plusmn; 17<\/td><td class=\"taille\">2738 &plusmn; 18<\/td><td class=\"taille\">&minus;20<\/td><td class=\"ok\">indiscernables<\/td><\/tr>\n      <tr><td><strong>Junior 8<\/strong><\/td><td class=\"taille\">2838 &plusmn; 12<\/td><td class=\"taille\">2864 &plusmn; 14<\/td><td class=\"taille\">&minus;26<\/td><td class=\"ok\">indiscernables<\/td><\/tr>\n      <tr><td><strong>Fritz 5.32<\/strong><\/td><td class=\"taille\">2717 &plusmn; 14<\/td><td class=\"taille\">2744 &plusmn; 14<\/td><td class=\"taille\">&minus;27<\/td><td class=\"ok\">indiscernables<\/td><\/tr>\n      <tr><td><strong>Hiarcs 8<\/strong><\/td><td class=\"taille\">2857 &plusmn; 18<\/td><td class=\"taille\">2886 &plusmn; 20<\/td><td class=\"taille\">&minus;29<\/td><td class=\"ok\">indiscernables<\/td><\/tr>\n      <tr><td><strong>Nimzo 8<\/strong><\/td><td class=\"taille\">2714 &plusmn; 18<\/td><td class=\"taille\">2749 &plusmn; 15<\/td><td class=\"taille\">&minus;35<\/td><td class=\"ok\">indiscernables<\/td><\/tr>\n      <tr><td><strong>Fritz 8<\/strong><\/td><td class=\"taille\">2872 &plusmn; 15<\/td><td class=\"taille\">2917 &plusmn; 20<\/td><td class=\"taille\">&minus;45<\/td><td class=\"ok\">indiscernables<\/td><\/tr>\n      <tr><td><strong>Fritz 6<\/strong><\/td><td class=\"taille\">2841 &plusmn; 15<\/td><td class=\"taille\">2794 &plusmn; 10<\/td><td class=\"taille\">+47<\/td><td>adapt\u00e9 au-dessus<\/td><\/tr>\n      <tr><td><strong>Junior 7<\/strong><\/td><td class=\"taille\">2785 &plusmn; 14<\/td><td class=\"taille\">2840 &plusmn; 14<\/td><td class=\"taille\">&minus;55<\/td><td>adapt\u00e9 en dessous<\/td><\/tr>\n      <tr><td><strong>Shredder 6<\/strong><\/td><td class=\"taille\">2836 &plusmn; 21<\/td><td class=\"taille\">2933 &plusmn; 26<\/td><td class=\"taille\">&minus;97<\/td><td>adapt\u00e9 en dessous*<\/td><\/tr>\n    <\/tbody>\n  <\/table>\n  <\/div>\n  <p style=\"font-size:.88rem; color:var(--gris);\">\n    \u00ab Indiscernables \u00bb : \u00e9cart inf\u00e9rieur \u00e0 deux fois l'incertitude combin\u00e9e des deux mesures.\n    * La cote native de Shredder 6 ne repose que sur 60 parties, et l'adapt\u00e9e sur 92 : c'est\n    l'\u00e9cart le plus fragile du tableau, des deux c\u00f4t\u00e9s.\n  <\/p>\n  <p>\n    <strong>Sept moteurs sur dix sont indiscernables de leur version d'origine.<\/strong>\n    Fritz 7 tombe \u00e0 neuf points de son natif, Hiarcs 7.32 \u00e0 vingt, Junior 8 \u00e0 vingt-six.\n  <\/p>\n  <p>\n    Trois \u00e9carts d\u00e9passent le seuil, et pas dans le m\u00eame sens. Fritz 6 adapt\u00e9 est\n    <em>au-dessus<\/em> de son natif, de 47 points. Junior 7 est en dessous de 55 points.\n    Shredder 6, \u00e0 &minus;97, est \u00e0 prendre avec pr\u00e9caution : les deux mesures reposent sur\n    peu de parties.\n  <\/p>\n\n  <div class=\"box naum-note-box\">\n    <span class=\"box-titre\">Le co\u00fbt du pont, en un chiffre<\/span>\n    Pris un par un, la plupart des \u00e9carts sont dans le bruit de mesure. Pris ensemble, ils\n    racontent autre chose : neuf sur dix sont n\u00e9gatifs. Leur moyenne, pond\u00e9r\u00e9e par la\n    pr\u00e9cision de chaque mesure, vaut <strong>&minus;23 &plusmn; 7 Elo<\/strong>. Passer par un\n    pont co\u00fbte donc environ vingt points &mdash; peu, mais de fa\u00e7on mesurable. C'est l'ordre de\n    grandeur de la couche Python qui s'intercale entre l'interface et le moteur.\n  <\/div>\n\n  <h3>Trois moteurs sans \u00e9quivalent<\/h3>\n  <p>\n    Trois moteurs adapt\u00e9s n'ont aucune version native dans la liste, parce que leur version\n    d'origine n'a jamais pu tourner ailleurs que dans son logiciel. Leur cote est donc, \u00e0 notre\n    connaissance, la seule mesure publique de ces moteurs sur mat\u00e9riel moderne.\n  <\/p>\n  <div class=\"tbl-wrap\">\n  <table>\n    <thead><tr><th>Moteur adapt\u00e9<\/th><th class=\"taille\">Cote<\/th><th class=\"taille\">Parties<\/th><th>Situation<\/th><\/tr><\/thead>\n    <tbody>\n      <tr><td><strong>Fritz 9 UCI py<\/strong><\/td><td class=\"taille\"><strong>2969 &plusmn; 10<\/strong><\/td><td class=\"taille\">424<\/td>\n        <td>Le mieux mesur\u00e9 des adapt\u00e9s. Au niveau de Shredder 10 UCI (2979), juste sous Fritz 10.<\/td><\/tr>\n      <tr><td><strong>Shredder 7 UCI py<\/strong><\/td><td class=\"taille\"><strong>2954 &plusmn; 19<\/strong><\/td><td class=\"taille\">97<\/td>\n        <td>Au niveau de Shredder 9.1 UCI (2962), son successeur de deux g\u00e9n\u00e9rations.<\/td><\/tr>\n      <tr><td><strong>Shredder 5.32 UCI py<\/strong><\/td><td class=\"taille\"><strong>2749 &plusmn; 20<\/strong><\/td><td class=\"taille\">95<\/td>\n        <td>Au niveau de Zarkov 6.50 et de Nimzo 8.<\/td><\/tr>\n    <\/tbody>\n  <\/table>\n  <\/div>\n  <p>\n    Si l'on applique \u00e0 ces trois moteurs le co\u00fbt moyen du pont mesur\u00e9 plus haut, leur version\n    d'origine se situerait une vingtaine de points plus haut. C'est une estimation, pas une mesure.\n  <\/p>\n\n  <h3>La confrontation avec la SSDF<\/h3>\n  <p>\n    Comparer deux \u00e9chelles Elo n'a de sens que par un adversaire commun. Shredder&nbsp;10 UCI\n    figure dans le classement du laboratoire (2979) comme dans les listes historiques de la\n    <strong>SSDF<\/strong> (2832 sur Athlon 1200) : on raisonne donc en \u00e9cart \u00e0 ce rep\u00e8re, ce qui\n    annule les diff\u00e9rences de machine.\n  <\/p>\n  <div class=\"tbl-wrap\">\n  <table>\n    <thead><tr><th>Moteur<\/th><th class=\"taille\">Ici<\/th><th class=\"taille\">\u00c9cart au rep\u00e8re<\/th><th class=\"taille\">SSDF<\/th><th class=\"taille\">\u00c9cart au rep\u00e8re<\/th><th class=\"taille\">Diff\u00e9rence<\/th><\/tr><\/thead>\n    <tbody>\n      <tr><td><strong>Fritz 9 UCI py<\/strong><\/td><td class=\"taille\">2969<\/td><td class=\"taille\">&minus;10<\/td><td class=\"taille\">2951<\/td><td class=\"taille\">&minus;20<\/td><td class=\"taille\">+10<\/td><\/tr>\n      <tr><td>Fritz 8 (natif)<\/td><td class=\"taille\">2917<\/td><td class=\"taille\">&minus;62<\/td><td class=\"taille\">2896<\/td><td class=\"taille\">&minus;75<\/td><td class=\"taille\">+13<\/td><\/tr>\n      <tr><td>Fritz 7 (natif)<\/td><td class=\"taille\">2902<\/td><td class=\"taille\">&minus;77<\/td><td class=\"taille\">2880<\/td><td class=\"taille\">&minus;91<\/td><td class=\"taille\">+14<\/td><\/tr>\n      <tr><td>Junior 7 (natif)<\/td><td class=\"taille\">2840<\/td><td class=\"taille\">&minus;139<\/td><td class=\"taille\">2826<\/td><td class=\"taille\">&minus;145<\/td><td class=\"taille\">+6<\/td><\/tr>\n      <tr><td>Fritz 6 (natif)<\/td><td class=\"taille\">2794<\/td><td class=\"taille\">&minus;185<\/td><td class=\"taille\">2762<\/td><td class=\"taille\">&minus;209<\/td><td class=\"taille\">+24<\/td><\/tr>\n    <\/tbody>\n  <\/table>\n  <\/div>\n  <p>\n    <strong>Fritz 9 adapt\u00e9 se comporte exactement comme les moteurs natifs de contr\u00f4le.<\/strong>\n    Les quatre natifs sont d\u00e9cal\u00e9s de six \u00e0 vingt-quatre points par rapport \u00e0 la SSDF, quatorze en\n    moyenne ; Fritz 9, de dix. Un moteur qui n'avait jamais pu \u00eatre test\u00e9 hors de son logiciel retrouve, une fois\n    lib\u00e9r\u00e9, le rang que lui donnaient les testeurs de son \u00e9poque.\n  <\/p>\n  <div class=\"box naum-note-box\">\n    <span class=\"box-titre\">Et les grandes listes modernes ?<\/span>\n    Le CCRL ne peut pas tester ces moteurs : sa proc\u00e9dure exige des programmes autonomes. Les\n    Fritz n'y figurent qu'\u00e0 partir de la version&nbsp;7, la premi\u00e8re livr\u00e9e en UCI. Pour tout ce\n    qui pr\u00e9c\u00e8de, la SSDF des ann\u00e9es 1998-2006 reste la seule r\u00e9f\u00e9rence &mdash; et elle a \u00e9t\u00e9\n    \u00e9tablie sur des machines \u00e0 450 MHz ou 1,2 GHz. D'o\u00f9 l'int\u00e9r\u00eat d'un ancrage par adversaire\n    commun plut\u00f4t que d'une comparaison brute des cotes.\n  <\/div>\n\n  <div class=\"box naum-coherence-box\">\n    <span class=\"box-titre\">Ce que \u00e7a veut dire, en une phrase<\/span>\n    Ces moteurs, une fois sortis de leur logiciel d'origine, jouent \u00e0 leur niveau, \u00e0 une\n    vingtaine de points pr\u00e8s. Le doute qui pesait sur les premi\u00e8res campagnes, o\u00f9 les versions\n    adapt\u00e9es accusaient cent \u00e0 deux cents points de retard, est lev\u00e9.\n  <\/div>\n\n  <h3>Les multiprocesseurs : un, quatre, huit threads<\/h3>\n  <p>\n    Deep Fritz&nbsp;8 et Deep Junior&nbsp;10 sont les seuls moteurs adapt\u00e9s con\u00e7us pour plusieurs\n    processeurs. La question est double : jouent-ils \u00e0 leur niveau, et tirent-ils parti de leurs\n    threads une fois sortis de leur logiciel ? Pour y r\u00e9pondre, les deux ont affront\u00e9 le\n    <strong>m\u00eame champ de cinq moteurs mono-processeur<\/strong>, dans les m\u00eames conditions, avec\n    un nombre de threads diff\u00e9rent d'une s\u00e9rie \u00e0 l'autre.\n  <\/p>\n  <ul>\n    <li><strong>Adversaires<\/strong> : Gull 1.2 (3124), Fruit 2.3.1 (3020), Shredder 10 UCI (2979),\n      ProDeo 2.0 (2923), Chess Tiger 2007 (2879) &mdash; cote moyenne 2985 ;<\/li>\n    <li><strong>60 coups en 15 minutes<\/strong>, hash de 512 Mo, livre Perfect 2023 sur huit coups,\n      livres internes coup\u00e9s ;<\/li>\n    <li>abandon arbitr\u00e9 \u00e0 dix pions d'\u00e9cart pendant trois coups, les deux moteurs d'accord ;<\/li>\n    <li>20 parties contre chaque adversaire, 100 par s\u00e9rie.<\/li>\n  <\/ul>\n  <div class=\"tbl-wrap\">\n  <table>\n    <thead><tr><th>S\u00e9rie<\/th><th class=\"taille\">Threads<\/th><th class=\"taille\">Parties compt\u00e9es<\/th><th class=\"taille\">Score<\/th><th class=\"taille\">Perf.<\/th><th class=\"taille\">Cote Ordo<\/th><th>Incidents<\/th><\/tr><\/thead>\n    <tbody>\n      <tr><td><strong>Deep Fritz 8 UCI py<\/strong><\/td><td class=\"taille\">1<\/td><td class=\"taille\">100<\/td><td class=\"taille\">35,5 &middot; 35,5&nbsp;%<\/td><td class=\"taille\">2881<\/td><td class=\"taille\"><strong>2873 &plusmn; 19<\/strong><\/td><td>aucun<\/td><\/tr>\n      <tr><td><strong>Deep Fritz 8 UCI py<\/strong><\/td><td class=\"taille\">4<\/td><td class=\"taille\">96 sur 97<\/td><td class=\"taille\">39,5 &middot; 41,1&nbsp;%<\/td><td class=\"taille\">2923<\/td><td class=\"taille\"><strong>2921 &plusmn; 20<\/strong><\/td><td>1 coup ill\u00e9gal<\/td><\/tr>\n      <tr><td><strong>Deep Fritz 8 UCI py<\/strong><\/td><td class=\"taille\">8<\/td><td class=\"taille\">99 sur 100<\/td><td class=\"taille\">49 &middot; 49,5&nbsp;%<\/td><td class=\"taille\">2982<\/td><td class=\"taille\"><strong>2979 &plusmn; 20<\/strong><\/td><td>1 coup ill\u00e9gal<\/td><\/tr>\n      <tr><td><strong>Deep Junior 10 UCI py<\/strong><\/td><td class=\"taille\">4<\/td><td class=\"taille\">98 sur 100<\/td><td class=\"taille\">39 &middot; 39,8&nbsp;%<\/td><td class=\"taille\">2774<\/td><td class=\"taille\"><strong>2907 &plusmn; 20<\/strong><\/td><td>2 d\u00e9connexions<\/td><\/tr>\n      <tr><td><strong>Deep Junior 10 UCI py<\/strong><\/td><td class=\"taille\">8<\/td><td class=\"taille\">90 sur 100<\/td><td class=\"taille\">42,5 &middot; 47,2&nbsp;%<\/td><td class=\"taille\">2966<\/td><td class=\"taille\"><strong>2962 &plusmn; 21<\/strong><\/td><td>10 d\u00e9connexions<\/td><\/tr>\n    <\/tbody>\n  <\/table>\n  <\/div>\n  <p style=\"font-size:.88rem; color:var(--gris);\">\n    Parties incident\u00e9es \u00e9cart\u00e9es du score et de la cote. Perf. : performance simple sur la cote\n    moyenne du champ (2985), perf = 2985 + 400 &middot; log<sub>10<\/sub>(p \/ (1 &minus; p)). Cote Ordo :\n    classement du laboratoire au 24 septembre 2026. \u00ab Coup ill\u00e9gal \u00bb : le pont a rendu un coup nul\n    (<code>0000<\/code>) au lieu d'un coup, une fois dans chacune des deux s\u00e9ries.\n  <\/p>\n\n  <h3>Ce que rapportent les threads<\/h3>\n  <div class=\"tbl-wrap\">\n  <table>\n    <thead><tr><th>Comparaison<\/th><th class=\"taille\">\u00c9cart<\/th><th class=\"taille\">Incertitude<\/th><th>Verdict<\/th><\/tr><\/thead>\n    <tbody>\n      <tr><td>Deep Fritz 8 : 1 &rarr; 4 threads<\/td><td class=\"taille\">+48<\/td><td class=\"taille\">&plusmn;28<\/td><td>non significatif seul<\/td><\/tr>\n      <tr><td>Deep Fritz 8 : 4 &rarr; 8 threads<\/td><td class=\"taille\">+58<\/td><td class=\"taille\">&plusmn;28<\/td><td>\u00e0 la limite (2,1 fois l'incertitude)<\/td><\/tr>\n      <tr><td><strong>Deep Fritz 8 : 1 &rarr; 8 threads<\/strong><\/td><td class=\"taille\"><strong>+106<\/strong><\/td><td class=\"taille\">&plusmn;28<\/td><td class=\"ok\">significatif<\/td><\/tr>\n      <tr><td>Deep Junior 10 : 4 &rarr; 8 threads<\/td><td class=\"taille\">+55<\/td><td class=\"taille\">&plusmn;29<\/td><td>non significatif seul<\/td><\/tr>\n    <\/tbody>\n  <\/table>\n  <\/div>\n  <p>\n    <strong>Deep Fritz 8 tire bien parti de ses threads : 106 points entre un et huit.<\/strong> La\n    progression est r\u00e9guli\u00e8re, 48 points de un \u00e0 quatre, 58 de quatre \u00e0 huit. \u00c0 huit threads, il\n    rejoint Shredder&nbsp;10 (2979) et Fritz&nbsp;9 adapt\u00e9 (2969). Deep Junior&nbsp;10 gagne 55\n    points de quatre \u00e0 huit threads, dans le m\u00eame ordre de grandeur, et se place \u00e0 2962.\n  <\/p>\n  <p>\n    Contre les cinq adversaires, la hausse de Deep Fritz 8 n'est pas uniforme : de un \u00e0 huit threads,\n    il passe de 3,5 \u00e0 8 points sur 20 contre Gull et de 7 \u00e0 10,5 contre Shredder&nbsp;10, mais de\n    10 \u00e0 12 seulement contre Chess Tiger, contre qui il faisait d\u00e9j\u00e0 jeu \u00e9gal \u00e0 un thread.\n  <\/p>\n\n  <h3>La profondeur, coup par coup<\/h3>\n  <p>\n    Cutechess inscrit la profondeur atteinte \u00e0 chaque coup. Sur les quarante premiers coups hors\n    livre, \u00e0 temps de r\u00e9flexion comparable :\n  <\/p>\n  <div class=\"tbl-wrap\">\n  <table>\n    <thead><tr><th>S\u00e9rie<\/th><th class=\"taille\">Profondeur moyenne<\/th><th class=\"taille\">Temps par coup<\/th><\/tr><\/thead>\n    <tbody>\n      <tr><td>Deep Fritz 8, 1 thread<\/td><td class=\"taille\">14,0<\/td><td class=\"taille\">18,5 s<\/td><\/tr>\n      <tr><td>Deep Fritz 8, 4 threads<\/td><td class=\"taille\">14,0<\/td><td class=\"taille\">18,8 s<\/td><\/tr>\n      <tr><td>Deep Fritz 8, 8 threads<\/td><td class=\"taille\">14,8<\/td><td class=\"taille\">18,2 s<\/td><\/tr>\n      <tr><td>Deep Junior 10, 4 threads<\/td><td class=\"taille\">18,4<\/td><td class=\"taille\">20,0 s<\/td><\/tr>\n      <tr><td>Deep Junior 10, 8 threads<\/td><td class=\"taille\">19,8<\/td><td class=\"taille\">19,8 s<\/td><\/tr>\n    <\/tbody>\n  <\/table>\n  <\/div>\n  <p>\n    \u00c0 huit threads, Deep Fritz 8 gagne huit dixi\u00e8mes de demi-coup sur sa s\u00e9rie \u00e0 un thread, et Deep\n    Junior 10 pr\u00e8s d'un demi-coup et demi sur sa s\u00e9rie \u00e0 quatre. \u00c0 quatre threads en revanche, Deep\n    Fritz 8 n'atteint pas une profondeur plus grande qu'\u00e0 un seul, alors que son score progresse. La\n    profondeur ne se compare qu'\u00e0 l'int\u00e9rieur d'un m\u00eame moteur : chaque programme annonce la sienne\n    selon sa propre d\u00e9finition.\n  <\/p>\n\n  <h3>Fritz 8 et Deep Fritz 8 sur un seul thread<\/h3>\n  <div class=\"tbl-wrap\">\n  <table>\n    <thead><tr><th>Moteur<\/th><th class=\"taille\">Cote<\/th><th class=\"taille\">Parties<\/th><\/tr><\/thead>\n    <tbody>\n      <tr><td>Fritz 8 (natif)<\/td><td class=\"taille\">2917 &plusmn; 20<\/td><td class=\"taille\">90<\/td><\/tr>\n      <tr><td><strong>Fritz 8 UCI py<\/strong><\/td><td class=\"taille\">2872 &plusmn; 15<\/td><td class=\"taille\">179<\/td><\/tr>\n      <tr><td><strong>Deep Fritz 8 UCI py, 1 thread<\/strong><\/td><td class=\"taille\">2873 &plusmn; 19<\/td><td class=\"taille\">100<\/td><\/tr>\n    <\/tbody>\n  <\/table>\n  <\/div>\n  <p>\n    <strong>Ramen\u00e9 \u00e0 un seul thread, Deep Fritz 8 vaut exactement Fritz 8 : un point d'\u00e9cart.<\/strong>\n    Les deux moteurs adapt\u00e9s sont au m\u00eame niveau, et au m\u00eame \u00e9cart de leur natif commun, Fritz 8\n    mono-processeur : &minus;45 et &minus;44, pour une incertitude combin\u00e9e de &plusmn;25 \u00e0\n    &plusmn;28. La version multiprocesseur ne co\u00fbte rien en force quand elle tourne sur un seul\n    c\u0153ur ; tout ce qu'elle gagne au-del\u00e0 vient des threads suppl\u00e9mentaires. Ni Deep Fritz 8 ni Deep\n    Junior 10 n'ont de version native au classement : leur comparaison au natif passe par Fritz 8.\n  <\/p>\n\n  <div class=\"box naum-alert-box\">\n    <span class=\"box-titre\">Deep Junior 10 : les d\u00e9connexions suivent les threads<\/span>\n    Dix parties perdues par d\u00e9connexion sur cent \u00e0 huit threads, deux sur cent \u00e0 quatre, et aucune\n    sur dix dans une s\u00e9rie d'essai \u00e0 deux threads. Le nombre d'incidents cro\u00eet avec le nombre de\n    threads. Sa cote \u00e0 huit threads repose donc sur 90 parties seulement. Deep Fritz 8, lui, n'a\n    perdu qu'une partie par s\u00e9rie, sur un coup nul rendu par le pont, et aucune \u00e0 un thread.\n  <\/div>\n\n  <div class=\"box naum-note-box\">\n    <span class=\"box-titre\">Les conditions de ces s\u00e9ries<\/span>\n    Les cinq s\u00e9ries ont \u00e9t\u00e9 jou\u00e9es en m\u00eame temps, du 21 au 24 septembre 2026, parall\u00e8lement \u00e0 deux\n    autres gauntlets et, \u00e0 partir du 22 septembre \u00e0 12&nbsp;h&nbsp;14, \u00e0 un tournoi Banksia. La s\u00e9rie\n    \u00e0 un thread de Deep Fritz 8 a jou\u00e9 quatre parties \u00e0 la fois et s'est achev\u00e9e le 22 septembre \u00e0\n    11&nbsp;h&nbsp;22 ; les quatre autres ont jou\u00e9 une partie \u00e0 la fois. Les \u00e9carts entre un, quatre\n    et huit threads sont mesur\u00e9s dans ces conditions de charge.\n  <\/div>\n\n  <h3>Ce qui a rendu ces r\u00e9sultats possibles<\/h3>\n  <p>\n    Deux corrections successives expliquent le chemin parcouru depuis les premi\u00e8res mesures, qui\n    donnaient toutes les versions adapt\u00e9es cent \u00e0 deux cents points sous leur original.\n  <\/p>\n  <ol class=\"etapes\">\n    <li><strong>La m\u00e9moire de la partie.<\/strong> Les moteurs ChessBase attendent qu'on leur\n      rejoue les coups d\u00e9j\u00e0 jou\u00e9s, pour reconstituer leur propre enregistrement. Le pont ne le\n      faisait pas : ils jouaient donc <em>aveugles \u00e0 la triple r\u00e9p\u00e9tition et \u00e0 la r\u00e8gle des\n      cinquante coups<\/em>, et bradaient des positions gagnantes en r\u00e9p\u00e9tant sans le savoir. Sur\n      les vingt-trois premi\u00e8res parties d'un moteur, les onze nulles \u00e9taient toutes des\n      r\u00e9p\u00e9titions, dont cinq alors qu'il \u00e9tait gagnant.<\/li>\n    <li><strong>La pendule.<\/strong> Le pont imposait \u00e0 chaque coup un temps calcul\u00e9 par lui-m\u00eame\n      et interrompait le moteur \u00e0 l'\u00e9ch\u00e9ance. R\u00e9sultat : sur cent cinquante parties, un moteur\n      n'a jamais d\u00e9pass\u00e9 vingt-huit secondes sur un coup, quand ses adversaires montaient \u00e0 cent\n      cinquante. Il ne pouvait donc jamais investir sur une position critique. Depuis\n      septembre 2026, le pont transmet la vraie pendule et laisse le moteur d\u00e9cider : les m\u00eames\n      moteurs montent maintenant \u00e0 quatre cents secondes quand la position l'exige, et\n      s'arr\u00eatent \u00e0 cinq quand le coup est \u00e9vident.<\/li>\n  <\/ol>\n  <p>\n    C'est cette seconde correction qui a fait basculer les r\u00e9sultats. Sur le moteur o\u00f9 elle a \u00e9t\u00e9\n    mesur\u00e9e isol\u00e9ment, elle vaut \u00e0 elle seule <strong>quatre-vingts points<\/strong>.\n  <\/p>\n\n  <div class=\"box naum-alert-box\">\n    <span class=\"box-titre\">La machine est un instrument de mesure<\/span>\n    <p style=\"margin:.4em 0 .8em;\">\n      Une le\u00e7on co\u00fbteuse, qui vaut pour quiconque voudrait refaire ces mesures. Faire tourner\n      plusieurs tournois en m\u00eame temps sur une machine \u00e0 seize c\u0153urs\n      <strong>invalide tous les r\u00e9sultats<\/strong>, et pas seulement en les ralentissant. La perte\n      n'est pas la m\u00eame pour tout le monde : un moteur adapt\u00e9 paye deux fois (sa recherche\n      <em>et<\/em> la couche Python), un moteur multiprocesseur vole les c\u0153urs de ses adversaires,\n      et les processeurs modernes \u00e0 c\u0153urs h\u00e9t\u00e9rog\u00e8nes ajoutent leur propre loterie. On a vu un\n      m\u00eame moteur passer de 75&nbsp;% \u00e0 40&nbsp;% en cours de tournoi, simplement parce que\n      d'autres calculs avaient d\u00e9marr\u00e9 \u00e0 c\u00f4t\u00e9.\n    <\/p>\n    <p style=\"margin:0;\">\n      La r\u00e8gle est donc devenue absolue : <strong>un seul tournoi \u00e0 la fois, machine d\u00e9di\u00e9e<\/strong>.\n      Les mesures faites autrement ont \u00e9t\u00e9 jet\u00e9es, y compris quand elles \u00e9taient flatteuses.\n    <\/p>\n  <\/div>\n\n  <h2>La suite<\/h2>\n  <p>\n    Les treize moteurs mono-processeur sont au classement, et les deux multiprocesseurs y sont\n    entr\u00e9s, mesur\u00e9s \u00e0 plusieurs nombres de threads. Restent des points ouverts :\n  <\/p>\n  <div class=\"tbl-wrap\">\n  <table>\n    <thead><tr><th>Moteur<\/th><th>O\u00f9 il en est<\/th><\/tr><\/thead>\n    <tbody>\n      <tr><td><strong>Deep Fritz 8<\/strong><\/td>\n        <td>Mesur\u00e9 en 1, 4 et 8 threads (2873, 2921, 2979). Reste \u00e0 expliquer les deux coups nuls\n        rendus par le pont, un \u00e0 quatre threads et un \u00e0 huit.<\/td><\/tr>\n      <tr><td><strong>Deep Junior 10<\/strong><\/td>\n        <td>Mesur\u00e9 en 4 et 8 threads (2907, 2962). Les d\u00e9connexions augmentent avec le nombre de\n        threads et restent \u00e0 supprimer.<\/td><\/tr>\n      <tr><td><strong>Deep Junior 9<\/strong><\/td>\n        <td>Adapt\u00e9 en septembre 2026, pas encore calibr\u00e9.<\/td><\/tr>\n    <\/tbody>\n  <\/table>\n  <\/div>\n  <p>\n    Au-del\u00e0, deux chantiers restent ouverts : porter les deux Tiger \u00e0 un niveau de fiabilit\u00e9\n    suffisant pour la calibration, et explorer Fritz 13 SE, d'une toute autre g\u00e9n\u00e9ration &mdash;\n    plus de table de fonctions, un protocole \u00e0 commandes s\u00e9rialis\u00e9es et un m\u00e9canisme de signature.\n    Sans promesse.\n  <\/p>\n\n  <div class=\"box naum-coherence-box\">\n    <span class=\"box-titre\">Ce qu'on en fait dans le classement<\/span>\n    Les moteurs adapt\u00e9s gardent leur place dans la liste sous leur cote <em>r\u00e9ellement mesur\u00e9e<\/em>,\n    jamais celle de leur pass\u00e9 natif, et portent une marque distinctive (couleur et mention\n    &laquo;&nbsp;py&nbsp;&raquo;) pour qu'on ne les confonde jamais avec un moteur UCI d'origine.\n  <\/div>\n\n  <hr>\n  <p>\n    Il aura fallu regarder les parties, et non les tableaux, pour comprendre. Ces vieux moteurs\n    ne perdaient pas leur force en changeant de logiciel : on leur avait retir\u00e9 la m\u00e9moire de ce\n    qu'ils venaient de jouer, puis on les avait emp\u00each\u00e9s de g\u00e9rer leur temps. Rendus \u00e0\n    eux-m\u00eames, ils rejouent exactement comme il y a vingt-cinq ans &mdash; \u00e0 ceci pr\u00e8s qu'ils le\n    font sur une machine mille fois plus rapide, et qu'on peut enfin les mesurer.\n  <\/p>\n\n  <p class=\"sig\">chess.lumn.eu &middot; laboratoire de calibration &middot; mise \u00e0 jour du 24 septembre 2026<\/p>\n\n<\/article>\n\n<!-- ============================================================================\n     REMETTRE ICI, TEL QUEL, LE BLOC <script>...<\/script> DE L'ARTICLE D'ORIGINE\n     (celui qui contient les variables ENG et SHR en base64 et les deux\n     addEventListener sur #dl-eng et #dl-shr). Il est INCHANG\u00c9 : les identifiants\n     des boutons dl-eng \/ dl-shr sont identiques dans cette version.\n     ============================================================================ -->\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Laboratoire &middot; moteurs d&#8217;\u00e9checs classiques Faire rejouer les moteurs classiques Fritz, Junior, Shredder, Nimzo, Hiarcs &mdash; les grands moteurs de 1997 \u00e0 2005 sont enferm\u00e9s dans le logiciel ChessBase qui les a vus na\u00eetre. Deux petits ponts les lib\u00e8rent : ils les font passer pour des moteurs UCI ordinaires, afin qu&#8217;on puisse enfin les faire&hellip;&nbsp;<a href=\"https:\/\/www.chess.lumn.eu\/wordpress\/2026\/07\/10\/fritz-sous-gui-alternatives\/\" class=\"\" rel=\"bookmark\">Read More &raquo;<span class=\"screen-reader-text\">UPDATE: Chessbase engines sous autres GUI<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":4146,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":""},"categories":[70,37],"tags":[],"rttpg_featured_image_url":{"full":["https:\/\/www.chess.lumn.eu\/wordpress\/wp-content\/uploads\/2026\/09\/moteurs-chessbase-uci.jpg",1200,1000,false],"landscape":["https:\/\/www.chess.lumn.eu\/wordpress\/wp-content\/uploads\/2026\/09\/moteurs-chessbase-uci.jpg",1200,1000,false],"portraits":["https:\/\/www.chess.lumn.eu\/wordpress\/wp-content\/uploads\/2026\/09\/moteurs-chessbase-uci.jpg",1200,1000,false],"thumbnail":["https:\/\/www.chess.lumn.eu\/wordpress\/wp-content\/uploads\/2026\/09\/moteurs-chessbase-uci-150x150.jpg",150,150,true],"medium":["https:\/\/www.chess.lumn.eu\/wordpress\/wp-content\/uploads\/2026\/09\/moteurs-chessbase-uci-300x250.jpg",300,250,true],"large":["https:\/\/www.chess.lumn.eu\/wordpress\/wp-content\/uploads\/2026\/09\/moteurs-chessbase-uci-1024x853.jpg",1024,853,true],"1536x1536":["https:\/\/www.chess.lumn.eu\/wordpress\/wp-content\/uploads\/2026\/09\/moteurs-chessbase-uci.jpg",1200,1000,false],"2048x2048":["https:\/\/www.chess.lumn.eu\/wordpress\/wp-content\/uploads\/2026\/09\/moteurs-chessbase-uci.jpg",1200,1000,false],"neve-blog":["https:\/\/www.chess.lumn.eu\/wordpress\/wp-content\/uploads\/2026\/09\/moteurs-chessbase-uci-930x620.jpg",930,620,true]},"rttpg_author":{"display_name":"valterd","author_link":"https:\/\/www.chess.lumn.eu\/wordpress\/author\/valterd\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/www.chess.lumn.eu\/wordpress\/category\/chess-engines\/\" rel=\"category tag\">Chess Engines<\/a> <a href=\"https:\/\/www.chess.lumn.eu\/wordpress\/category\/soft\/\" rel=\"category tag\">Soft<\/a>","rttpg_excerpt":"Laboratoire &middot; moteurs d&#8217;\u00e9checs classiques Faire rejouer les moteurs classiques Fritz, Junior, Shredder, Nimzo, Hiarcs &mdash; les grands moteurs de 1997 \u00e0 2005 sont enferm\u00e9s dans le logiciel ChessBase qui les a vus na\u00eetre. Deux petits ponts les lib\u00e8rent : ils les font passer pour des moteurs UCI ordinaires, afin qu&#8217;on puisse enfin les faire&hellip;&nbsp;Read&hellip;","_links":{"self":[{"href":"https:\/\/www.chess.lumn.eu\/wordpress\/wp-json\/wp\/v2\/posts\/3964"}],"collection":[{"href":"https:\/\/www.chess.lumn.eu\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.chess.lumn.eu\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.chess.lumn.eu\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.chess.lumn.eu\/wordpress\/wp-json\/wp\/v2\/comments?post=3964"}],"version-history":[{"count":41,"href":"https:\/\/www.chess.lumn.eu\/wordpress\/wp-json\/wp\/v2\/posts\/3964\/revisions"}],"predecessor-version":[{"id":4468,"href":"https:\/\/www.chess.lumn.eu\/wordpress\/wp-json\/wp\/v2\/posts\/3964\/revisions\/4468"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.chess.lumn.eu\/wordpress\/wp-json\/wp\/v2\/media\/4146"}],"wp:attachment":[{"href":"https:\/\/www.chess.lumn.eu\/wordpress\/wp-json\/wp\/v2\/media?parent=3964"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.chess.lumn.eu\/wordpress\/wp-json\/wp\/v2\/categories?post=3964"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.chess.lumn.eu\/wordpress\/wp-json\/wp\/v2\/tags?post=3964"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}