On 23/08/06, Juhász János <[EMAIL PROTECTED]> wrote: > I just played about this exercise and it has to be about spelling and not > about hardcoding, as It is more interestig to join banner characters into > the same line.
I had a brief think about that as well. I think if I tried to code it, my approach would be something like: class Letter(object): def __init__(self, letter): # convert letter into rows of characters, somehow. # end up with something like: self.rows = ['#####', ' # ', ' # ', '# # ', ' ## '] def getWidth(self): return max(len(s) for s in self.rows) def getRow(self, i): return self.rows[i] Then to print a string: s = 'John Fouhy' letters = [Letter(c) for c in s] for i in range(HEIGHT): for letter in letters: print '%*s' % (letter.getWidth(), letter.getRow(i)), print Undecided how to map from a character 'c' to a Letter, but Bob's idea looks good. If you drew each letter using the appropriate character then you could automatically derive your dictionary keys, and still replace the character by '*' if you wanted. Letter height HEIGHT is a constant. And obviously, you would need to do a bit more work to handle word wrapping. -- John. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor