Well I don't really want to solve the challenge for you, but a "counting pixels" method is probably the easiest way of doing it.
If you had an image of a character, you could count how many pixels are in a specific area of the image and make inferences based on it.
Let's use 'A' as an example:
- Code: Select all
----#----
---#-#---
---#-#---
--#---#--
--#####--
-#-----#-
#-------#
If we check the first two pixels on the first two lines:
- Code: Select all
**--#----
**-#-#---
---#-#---
--#---#--
--#####--
-#-----#-
#-------#
Then if we check the last two pixels on the first two lines:
- Code: Select all
----#--**
---#-#-**
---#-#---
--#---#--
--#####--
-#-----#-
#-------#
And find that they are blank then we can eliminate certain characters from our search.
We then check the middle 3 pixels on the first two lines:
- Code: Select all
---***---
---***---
---#-#---
--#---#--
--#####--
-#-----#-
#-------#
And find non-blank pixels then it looks like the top of an 'A' or maybe a '1'... Maybe a '4' ?
If we then check the bottom two corners:
- Code: Select all
----#----
---#-#---
---#-#---
--#---#--
--#####--
**-----**
**-----**
We find that they aren't blank so we can say that it's probably not a '4', however it could still be a '1' as the character on the mission looks like:
- Code: Select all
---#---
--##---
---#---
---#---
---#---
---#---
---#---
-#####-
And so our heuristics would identify it as an 'A'. What we CAN say is that a '1' is noticably thinner than an 'A' in all cases, so if it passes our heuristics, but it's width is 7 or less, then it's got to be a '1', as no 'A' can be less than 7 pixels.
Can you see where I'm coming from here? Obviously your heuristics will need to be much tighter for certain characters (good luck distinguishing B's from 8's !

) but you should get the general idea here.
Also you'll need to take into account the distortions of all characters as you rotate the image. There's no 100% way of getting it right every time, so it'll take a few runs whereby you'll type the spiral out yourself and then debug your heuristics as needed. Every time you do this you fine-tune it.
Hope this helps.