Bulls and Cows
Bulls and Cows (also known as Cows and Bulls or Pigs and Bulls) is an old code-breaking mind or paper and pencil game for two or more players, predating the commercially marketed board game Mastermind.
It is a game that may date back a century or more which uses numbers or words. It is played by two opponents.
The numerical version
The numerical version of the game is usually played with 4 digits, but can also be played with 3 or any other number of digits.
On a sheet of paper, the players each write a 4-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. 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 in the fewest guesses 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.
A computer program moo, written in 1970 by J. M. Grochow at MIT in the PL/I computer language for the Multics operating system, was among the first Bulls and Cows computer implementations, inspired by a similar program written by Frank King in 1968 and running on the Cambridge University mainframe. Because the game has simple rules, while it is difficult and entertaining, there are many computer variants; it is often included in telephones and PDAs.
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 4-digit numbers, 4-letter words are used. They must be real words, according to whatever language or languages you are playing the game in. Alternate versions of the game can be played with 3-letter or 5-letter words, but the 4-letter version is the most popular.
The game play for letter version of this game is as follows.
- A person (Host) thinks of any isogram word, and gives out the number of letters in the word.
- Other players (Guessers) try to figure that word by guessing isogram words containing the same number of letters.
- Host responds with the number of Cows & Bulls for each guessed word. As with the digit version, "Cow" means a letter in the wrong position, while "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" (all of the guessed letters are wrong); a guess of EATS would result in "0 Bulls, 3 Cows" (since E, A, T are all present, but not in the guessed positions), 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 would continue until someone scores "4 Bulls" for guessing HEAT exactly.
- Optimal algorithms for bulls and cows game.
- http://www.cs.nccu.edu.tw/~chaolin/papers/science3203.pdf (Chinese version) Chao-Lin Liu. "Mathematics, Computer Science, and Number Games", Science Monthly, 32(3), 250-255, 2001.