mscroggs.co.uk
mscroggs.co.uk

subscribe

Blog

Build your own MENACE

 2022-02-26 
Surprisingly often, people ask me how they can build their own copy of MENACE. If you've been thinking that you'd love your own matchbox-powered machine learning computer but haven't got round to asking me about it yet, then this blog post is just what you're looking for.

Matchboxes

Before building MENACE, you'll need to get hold of 304 matchboxes (plus a few spares in case one gets lost or falls apart). I used these craft matchboxes: they don't have the best build quality, but they're good enough.

304 positions

The positions you need to glue onto the front of the matchboxes can be downloaded from this GitHub repository (first move boxes, third move boxes, fifth move boxes, seventh move boxes). These are sized to fit on matchboxes that have 15mm by 35mm fronts.
I printed each pdf on differently coloured paper to make it easier to sort the matchboxes after getting them out of their box.
If you get differently sized matchboxes, the code used the generate the PDFs is in the same GitHub repository (you'll need to modify these lines). Alternatively, feel free to drop me an email and I will happily adjust the sizes for you and send you the updated PDFs.

Glue

I used PVA glue to stick the positions onto the matchboxes. The printable PDFs have extra tabs of paper above and below the postions that can be glued in to the bottom and inside of the matchbox tray to hold it more securely.
Gluing the positions onto the matchboxes was the most time consuming part of building my copy of MENACE, largely due to having to wait for the glue to dry on a set of matchboxes before I had space for the next batch of them to dry.

Beads

Once you've glued pictures of noughts and crosses positions to 304 matchboxes, you'll need to put coloured beads into each matchbox. For this, I used a large tub of Hama beads (that tub contained orders of magnitude more beads than I needed).
A nice side effect of using Hama beads is that they're designed to be ironed together so making a key to show which colour corresponds to each position is very easy.
I typically start the boxes off with 8 beads of each colour in the first move box, 4 of each colour in the third move boxes, 2 of each in the fifth move boxes, and one of each in the seventh move boxes.

Once you've filled all your matchboxes with the correct number of beads, you're ready to play yout first game against MENACE. I'd love to hear how you get on.
And once you're bored of playing noughts and crosses against your matchboxes, why not build a machine that learns to play Hexapawn, Connect 4, Chess or Go? Or one that plays Nim?
Edit: Added link to the printable pdfs of the positions needed for Hexapawn, made by Dan Whitman.
×14      ×8      ×6      ×7      ×8
(Click on one of these icons to react to this blog post)

You might also enjoy...

Comments

Comments in green were written by me. Comments in blue were not written by me.
I made a matchbox machine that learns to play 3x3 Nim almost 50 years ago. I still have it. (Based on Martin Gardner's article)
Tony
×8   ×4   ×2   ×2   ×4     Reply
@nick: I make it 3, 38, and 153. Plus you'll need 95 boxes for the 8th moves.

There's pdfs of the positions you'll need in this folder if its helpful: https://github.com/mscroggs/MENACE-pdf... - they're in the files called second_boxes*.pdf
Matthew
                 Reply
I am building a similar machine to play the even moves (X) 2nd,4th,6th. This requires 3,38,151,boxes (I think) am I correct?
nick
                 Reply
Interesting.
Could try a same kind of thing using playing card deck(s)? A(=1)-2-3 4-5-6 7-8-9 maybe 3 decks with different colours on their backs.
Willem
×3   ×3   ×3   ×3   ×2     Reply
this if great!
Djonwaw
×2   ×2   ×2   ×2   ×2     Reply
I also read the Martin Gardner article way back when and had two matchbox machines (actually with envelopes instead of matchboxes) play Nim against each other. I don't remember all the details now, except that it got to the point where one would make the first move and the other would immediately resign.
Tim Lewis
×5   ×2   ×2   ×2   ×2     Reply
 Add a Comment 


I will only use your email address to reply to your comment (if a reply is needed).

Allowed HTML tags: <br> <a> <small> <b> <i> <s> <sup> <sub> <u> <spoiler> <ul> <ol> <li> <logo>
To prove you are not a spam bot, please type "sixa-y" backwards in the box below (case sensitive):

Archive

Show me a random blog post
 2026 

May 2026

World Cup stickers 2026

Apr 2026

A new puzzle every day
Mixing Wordle with other games

Feb 2026

Christmas (2025) is over
 2025 

Dec 2025

Christmas card 2025

Nov 2025

Christmas (2025) is coming!

Sep 2025

The partridge puzzle

Aug 2025

TMiP 2025 puzzle hunt

Jun 2025

A nonogram alphabet

Mar 2025

How to write a crossnumber

Jan 2025

Christmas (2024) is over
Friendly squares
 2024 

Dec 2024

A regular expression Christmas puzzle
Christmas card 2024

Nov 2024

Christmas (2024) is coming!

Feb 2024

Zines, pt. 2

Jan 2024

Christmas (2023) is over
 2023 
▼ show ▼
 2022 
▼ show ▼
 2021 
▼ show ▼
 2020 
▼ show ▼
 2019 
▼ show ▼
 2018 
▼ show ▼
 2017 
▼ show ▼
 2016 
▼ show ▼
 2015 
▼ show ▼
 2014 
▼ show ▼
 2013 
▼ show ▼
 2012 
▼ show ▼

Tags

error bars coventry pokémon wordle weak imposition oeis puzzles harriss spiral news pi approximation day chebyshev mathsjam big internet math-off realhats games pythagoras numbers data visualisation palindromes stickers standard deviation 24 hour maths logo ternary logs dates machine learning game of life sport estimation convergence phd matrices guest posts sound partridge puzzle golden ratio fonts php preconditioning london london underground flexagons coins go alphabets matrix multiplication pac-man correlation tennis the aperiodical approximation raspberry pi manchester science festival geogebra dragon curves propositional calculus talking maths in public numerical analysis wordle matrix of minors anscombe's quartet braiding bempp recursion chalkdust magazine javascript boundary element methods finite group rust geometry sorting thirteen bluesky fence posts graphs martin gardner runge's phenomenon newcastle data youtube wave scattering wool asteroids menace bodmas royal institution signorini conditions gaussian elimination graph theory errors computational complexity speed friendly squares latex national lottery dinosaurs quadrilaterals triangles hyperbolic surfaces fractals dataset chess zines tmip weather station stirling numbers inverse matrices world cup ucl rhombicuboctahedron nonograms sobolev spaces european cup map projections folding tube maps squares curvature books inline code trigonometry pi datasaurus dozen electromagnetic field interpolation hats mathsteroids crosswords probability frobel people maths live stream light draughts warwick platonic solids crochet rugby noughts and crosses bots royal baby turtles craft accuracy pizza cutting gather town crossnumbers manchester hexapawn statistics christmas card kenilworth nine men's morris plastic ratio final fantasy pokémon edinburgh radio 4 reddit python bubble bobble christmas kings polynomials a gamut of games determinants mathslogicbot programming football simultaneous equations folding paper arithmetic video games crossnumber matt parker logic finite element method cross stitch golden spiral misleading statistics gerry anderson advent calendar countdown hannah fry arrangement puzzles cambridge tetris binary pascal's triangle captain scarlet mean databet game show probability regular expressions reuleaux polygons matrix of cofactors exponential growth

Archive

Show me a random blog post
▼ show ▼
© Matthew Scroggs 2012–2026