Turochamp: The Birth of AI in Games

An Exploration of Alan Turing’s Chess Program

Image generated using DALL-E, OpenAI

Alan Turing, a pioneering figure in the world of Computer Science, is often celebrated for his work on breaking the Enigma code during World War II. However, one of his lesser-known achievements is creating one of the first chess algorithms — a small yet significant early step in the development of artificial intelligence systems.


AI is a difficult concept to fully and accurately define. There are complicated rule-based systems where a set of conditions map inputs to outputs; there are machine learning systems where the mapping between inputs and outputs is inferred; and there are Deep Learning systems where the exact weightings of inputs don’t even need to be specified.

It’s difficult to know where to draw the line between AI and traditional programming techniques However, simple algorithms and rule-based systems, like those designed by Turing, were a stepping stone to creating more complex systems that definitely fall under the AI category.


In the 1950s, computers were still in their infancy. Turing had a vision of a machine that could “think” strategically. He defined a series of goals that a chess program should accomplish:

At the simplest level, a chess program should be able to “obey the rules of chess” and generate valid, legal moves for a given chess position.

Next, a chess program should be able to “solve chess problems”. It should demonstrate some intelligence and awareness of the goals of the game.

Increasing the level of complexity slightly, a chess program should be able to “play a reasonably good game of chess”, or at least be able to put up a good fight against an average player, and generate logical and reasonable moves in any situation.

Lastly, and perhaps the most challenging of these targets, is for a chess program to be able to adapt and improve with each game it plays, “profiting from past experience”.

  • The first of these challenges, calculating legal moves, is relatively straightforward to perform, particularly with a modern computer and high- level programming language.
  • Learning from experiences is the focus of many modern AI systems, and is far beyond the capabilities of computers in the 50s.
  • This just leaves the problem of identifying ‘good’ moves from the set of possible ones, and this was the focus of Turing’s Algorithm.

In 1948, without access to a computer powerful enough to run his idea, Turing, along with colleague David Champernowne, devised a chess algorithm that could be performed by hand. This algorithm was known as “Turochamp”, and defined a set of rules that mimicked the decision-making process of a human player.


The exact set of rules was outlined in Turing’s 1953 paper. You can find it linked and summarised below. The algorithms proceeds as follows:

  • We start by calculating a total piece-material score for the player we are considering. Different pieces are worth a different number of points…

“Turochamp”

Turing (and Champernowne) used the following piece values: pawn=1, knight=3, bishop=3½, rook=5, queen=10. In addition they had the following positional evaluation functions

1. Mobility. For the Q,R,B,N, add the square root of the number of moves the piece can make; count each capture as two moves.

2. Piece safety. For the R,B,N, add 1.0 point if it is defended, and 1.5 points if it is defended at least twice.

3. King mobility. For the K, the same as (1) except for castling moves.

4. King safety. For the K, deduct points for its vulnerability as follows: assume that a Queen of the same colour is on the King’s square; calculate its mobility, and then subtract this value from the score.

5. Castling. Add 1.0 point for the possibility of still being able to castle on a later move if a King or Rook move is being considered; add another point if castling can take place on the next move; finally add one more point for actually castling.

6. Pawn credit. Add 0.2 point for each rank advanced, and 0.3 point for being defended by a non-Pawn.

7. Mates and checks. Add 1.0 point for the threat of mate and 0.5 point for a check.

(https://en.chessbase.com/post/reconstructing-turing-s-paper-machine)

Recreation of Turing’s Algorithm

Sadly, Turing never lived to see his algorithm run on a machine. The project was largely forgotten about, but, almost 60 years later, Chessbase decided to finish what he had started, and create a full, working implementation of Turing’s method.

You can see a live demo of the former World Champion Gary Kasparov playing against the engine they created at the link below:

Consequences of Turing’s Work

The creation of Turochamp was a foundational moment in both the history of AI and chess programming. Although it never played a physical game during its inception in the 1940s, Turochamp showcased early ideas about how machines could simulate human thought processes in complex decision-making environments as can be found in a game of chess.

Fast forward to today, and AI in chess has progressed to unimaginable heights. The shift from simple rules-based engines like Turochamp to modern systems, such as AlphaZero, illustrates a profound evolution. 

Chess engines like Stockfish and AlphaZero now dominate the chess landscape, with Elo ratings above 3500, far exceeding the amature performance of Turochamp.

The consequences of this evolution in chess programming are clear — computers not only outthink human players but also contribute to the improvement of human strategies by uncovering moves and ideas that were previously unknown.

This shift signifies a broader trend where AI, once seen as a tool to mimic human behavior, now pushes the boundaries of creativity and problem-solving in ways that influence both games and broader AI applications.

Looking back, Turochamp stands as a critical milestone, demonstrating that even the simplest AI programs can lead to remarkable advancements in technology, ultimately shaping how AI interacts with complex systems in the modern day. Its legacy lives on in today’s cutting-edge AI programs, driving innovation and reshaping our understanding of both intelligence and games.


Building a Chess Engine Using Python

If you’re interested in how more modern chess engines work, and some of the other components we require to search through and consider different possible moves, then feel free to check out my series where I document the process of building a chess engine using Python!

You can find part 1 of that series here:

References and Reading:

Thanks for reading 🙂

Scroll to Top