[Tutor] banners
John Fouhy
john at fouhy.net
Wed Aug 23 23:15:23 CEST 2006
On 23/08/06, Juhász János <juhasz.jani at freemail.hu> 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.
More information about the Tutor
mailing list