Building Menace I built a physical implementation of Menace so that I could play against the real thing myself. I wanted to create an experience similar to that which Michie must have had when he came up with the idea. What is most striking is the time it takes to play one game: finding the right box, taking a bead out and then placing Menace’s piece in the corresponding space on the board is very time-consuming.
To make things faster I therefore decided to write a Python script to work in the same way that Menace does, with the computer doing all the work for me. Using the script, I could also save the state of the boxes and try out new reward systems and bead arrangements without losing the results from a previous set of data. On top of this, I could now train Menace by playing it against already existing programmed strategies for noughts and crosses. I first had it play hundreds of games against a program that placed its counters randomly. You could see that aer having played a certain number of games Menace had evolved. But when I played against Menace aerwards, it would sometimes make irrational moves. When Menace played against the random strategy, the random strategy would oen place its counter somewhere other than where it could easily block Menace, leing Menace win and 21
Popular mathematics magazine from UCL