Bulls and cows

Bulls and cows (also known as cows and bulls or pigs and bulls) is a code-breaking mind or paper and pencil game for two or more players. The game is played in turns by two opponents who aim to decipher the other's secret code by trial and error.

Bulls and cows predates the commercially marketed board game version, Mastermind and the word-based version predates the hit word game Wordle. A version known as MOO was widely available for early mainframe computers, Unix and Multics systems, among others.

The numerical version
The numerical version of the game is usually played with four digits, but can be played with any number of digits.

On a sheet of paper, the players each write a four-digit secret number. The digits must be all different. Then, in turn, the players try to guess their opponent's number who gives the number of matches. The digits of the number guessed also must all be different. If the matching digits are in their right positions, they are "bulls", if in different positions, they are "cows". Example:
 * Secret number: 4271
 * Opponent's try: 1234
 * Answer: 1 bull and 2 cows. (The bull is "2", the cows are "4" and "1".)

The first player to reveal the other's secret number wins the game.

The game may also be played by two teams of players, with the team members discussing their strategy before selecting a move.

Computer versions of the game started appearing on mainframes in the 1970s. The first known version was written by Frank King at the Cambridge Computer Laboratory sometime before the summer of 1970. This version ran on Cambridge's multi-user operating system on their Titan machine. It became so popular the administrators had to introduce systems to prevent it from clogging the system. In 1972, the original Cambridge MOO was ported to the Multics operating system at MIT, and reimplemented on early Unix at Bell Labs.

A version called BASIC MOO was published in the DECUS Program Library for PDP computers and another was available through the DEC Users Society, both dating from 1971. A version written by Lane Hauck in the language FOCAL for the PDP-8 later served as the basis for the handheld game Comp IV by Milton Bradley.

These programs maintained a league table of players' scores, and protecting the integrity of this league table became a popular case study for researchers into computer security.

It is proved that any number can be solved within seven turns. The average minimal game length is $26274/5040 ≈ 5.21$ turns.

The word version
This version is usually played orally, but is easier to play if each player (or each team) keeps written notes. It is exactly like the numerical version, except instead of four-digit numbers, four-letter words are used. They must be real words, according to whatever language or languages the game is being played in. Alternative versions of the game can be played with three-letter or five-letter words, but the four-letter version remains the most popular one.

The game play for the word version is as follows.


 * One player (the host) thinks of an isogram word (i.e. no letter appears twice) and, if the word length is not pre-determined, announces the number of letters in the word.
 * Other players (the guessers) try to figure out that word by guessing isogram words containing the same number of letters.
 * The host responds with the number of cows and bulls for each guessed word. As with the digit version, "cow" means a letter in the wrong position and "bull" means a letter in the right position.

For example, if the secret word is heat, a guess of coin would result in "0 bulls, 0 cows" (none of the guessed letters are present); a guess of eats would result in "0 bulls, 3 cows" (since E, A, and T are all present, but in the wrong positions from the guess), and a guess of teal would result in "2 bulls, 1 cow" (since E and A are in the right positions, while T is in the wrong position). The game continues until one of the guessers scores "4 bulls" for guessing heat.

The word version of bulls and cows is similar to Wordle, a popular web-based word game released in 2021. Players have six attempts to guess a five-letter word.