Refactoring Kata
Here's an interesting refactoring challenge.
Refactor the tangle.c program described at http://axiom-developer.org/axiom-website/litprog.html with the goal of making it more readable and maintainable.
Some suggested guidelines and constraints. Of course, you can do whatever you want in your kata practice, but here are some ideas.
(1) Stay with C, don't change languages. It's easy to get a more readable program when using a more expressive language. Our goal here is to stretch our skills in producing readable code, not rely on the programming language.
(2) Don't stray too far from the original algorithm. Of couse you will be changing it a bit, but see if you can make the original algorithm more self-explanatory.