Outil/Solveur permettant de résoudre automatiquement une partie de Bulls and Cows en trouvant une combinaison secrète en un minimum de tentatives.
Solveur Bulls and Cows - dCode
Catégorie(s) : Jeux de Société
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
Bulls and Cows (ou Cows & Bulls, ou Pigs and Cows) est un jeu de logique basé sur la déduction dans lequel le joueur doit deviner un code secret en un minimum de tentatives. Le jeu se joue généralement à 2 joueurs avec des rôles distincts : l'un choisit un code secret (composé de chiffres, lettres ou symboles), l'autre tente de le deviner. Après chaque proposition, le joueur reçoit un retour sous forme de « bulls » et « cows » : les bulls indiquent les éléments corrects et bien placés, tandis que les cows indiquent les éléments corrects mais mal placés. La partie se termine lorsque le code secret est entièrement trouvé.
Le solveur Bulls and Cows est paramétrable selon la taille du code (nombre de positions) et le nombre de symboles possibles, en fonction de la partie à résoudre.
La syntaxe à utiliser est CCCC A B où CCCC représente une proposition, A le nombre de « bulls » (symboles corrects bien placés) et B le nombre de « cows » (symboles corrects mal placés).
Dans la version classique, le code comporte 4 positions et utilise des chiffres (0-9), mais toute combinaison de lettres, chiffres ou symboles est possible.
Pour une combinaison de taille N, chaque proposition doit contenir N caractères suivis de 2 nombres indiquant les indices (bulls et cows). Chaque proposition doit être séparée par un retour à la ligne.
Chaque caractère représente un symbole au choix. Il est recommandé d'utiliser des caractères distincts pour éviter toute ambiguïté.
Exemple : L'écriture ABCD 2 0 signifie que 2 symboles sont corrects et bien placés, et 0 corrects mais mal placés.
Il est possible d'utiliser des jokers (positions inconnues notées ?, *, - ou _) aussi bien dans la combinaison que dans les scores.
Exemple : AABC 1 2 signifie 1 bull et 2 cows
Exemple : A--- 0 1 (avec - joker)
Exemple : ABC 1? (nombre de cows inconnu)
Selon Donald Knuth, dans une configuration équivalente (code de 4 positions avec 6 symboles possibles), il est possible de trouver le code en 5 tentatives ou moins. L'algorithme est le suivant :
1 - Générer l'ensemble E de tous les codes possibles.
2 - Proposer 1122 (ou un équivalent) comme première tentative.
3 - Si la réponse est correcte, la partie s'arrête. Sinon, éliminer de E tous les codes incompatibles avec le résultat (bulls et cows).
4 - Pour chaque code non encore testé, calculer combien d'éléments de E seraient éliminés pour chaque réponse possible. Attribuer un score correspondant au pire cas (minimum d'éléments éliminés). Choisir un code maximisant ce score, de préférence appartenant à E. Revenir à l'étape 3.
Cet algorithme garantit de trouver le code en 5 tentatives ou moins.
Mathématiquement, si la stratégie du joueur est connue, certaines combinaisons peuvent être plus difficiles que d'autres. Cependant, avec une stratégie optimale (comme celle de Knuth), toutes les combinaisons sont trouvables en 5 étapes ou moins.
Si la stratégie n'est pas connue, aucune combinaison n'est intrinsèquement plus difficile qu'une autre.
Dans la pratique, certaines combinaisons peuvent piéger les joueurs humains :
— Les doublons (symboles répétés) sont souvent négligés.
— Les symboles inhabituels (chiffres élevés, lettres rares) sont testés plus tard.
— Des motifs peu intuitifs (ex : 1221, 5656) sont plus difficiles à anticiper.
Certaines combinaisons réputées difficiles incluent : 1221, 2354, 3311, 4524, 5656, 6643.
Une variante bien connue est le jeu Mastermind, qui utilise des couleurs à la place de chiffres ou symboles, avec un support physique (plateau et pions).
Une autre variante consiste à utiliser des mots à deviner, ce qui augmente fortement le nombre de combinaisons possibles.
Il est également possible d'autoriser des positions vides (cases sans symbole), si les joueurs sont d'accord.
Bulls and Cows est souvent utilisé comme base pour des énigmes ou mini-jeux dans des applications et jeux vidéo.
Bulls and Cows est un jeu ancien dont l'origine exacte est inconnue. Il était déjà joué bien avant la création du Mastermind, notamment sous forme de jeu de chiffres ou de papier-crayon.
dCode se réserve la propriété du code source pour "Solveur Bulls and Cows". Tout algorithme pour "Solveur Bulls and Cows", applet ou snippet ou script (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toutes fonctions liées à "Solveur Bulls and Cows" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou toute base de données, ou accès API à "Solveur Bulls and Cows" ou tout autre élément ne sont pas publics (sauf licence open source explicite). Idem avec le téléchargement pour un usage hors ligne sur PC, mobile, tablette, appli iPhone ou Android.
Rappel : dCode est une ressource éducative et pédagogique, accessible en ligne gratuitement et pour tous.
Le contenu de la page "Solveur Bulls and Cows" ainsi que ses résultats peuvent être copiés et réutilisés librement, y compris à des fins commerciales, à condition de mentionner dCode.fr comme source (Licence de libre diffusion Creative Commons CC-BY).
L'export des résultats est gratuit et se fait simplement en cliquant sur les icônes d'export ⤓ (format .csv ou .txt) ou ⧉ copier-coller.
Pour citer dCode.fr sur un autre site Internet, utiliser le lien :
Dans un article scientifique ou un livre, la citation bibliographique recommandée est : Solveur Bulls and Cows sur dCode.fr [site web en ligne], consulté le 21/04/2026,