Nought and crosses, built and TDD'ed in Python