Advertisement
Guest User

some fun

a guest
Feb 29th, 2020
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.43 KB | None | 0 0
  1. class Letters(object):
  2.     def __init__(self):
  3.         self.buffer = None
  4.  
  5.     def letterBuffer(self, w=7, h=9):
  6.         ret = []
  7.         for y in range(h):
  8.             line = []
  9.             for x in range(w):
  10.                 line.append(' ')
  11.             ret.append(line)
  12.         return ret
  13.  
  14.     def printBuffer(self):
  15.         for line in self.buffer:
  16.             for char in line:
  17.                 print(char, end="")
  18.             print()
  19.  
  20.     def lineHorizontal(self, buffer, x=0, y=0, length=7):
  21.         for i in range(length):
  22.             buffer[y][x+i] = "*"
  23.  
  24.     def lineVertical(self, buffer, x=0, y=0, length=9):
  25.         for i in range(length):
  26.             buffer[y+i][x] = "*"
  27.    
  28.     def lineCross(self, buffer):
  29.         x, y = 2, 0
  30.         length = 9
  31.         for i in range(length):
  32.             buffer[y+i][int((x+i)/2)] = "*"
  33.    
  34.  
  35.     def P(self):
  36.         buff = self.letterBuffer()
  37.         self.lineHorizontal(buff)
  38.         self.lineHorizontal(buff, y=4)
  39.         self.lineVertical(buff)
  40.         self.lineVertical(buff, x=6, length=4)
  41.         return buff
  42.  
  43.     def Y(self):
  44.         buff = self.letterBuffer()
  45.         self.lineHorizontal(buff, y=4)
  46.         self.lineHorizontal(buff, y=8)
  47.         self.lineVertical(buff, x=6)
  48.         self.lineVertical(buff, length=4)
  49.         return buff
  50.  
  51.     def T(self):
  52.         buff = self.letterBuffer()
  53.         self.lineHorizontal(buff)
  54.         self.lineVertical(buff, x=3)
  55.         return buff
  56.  
  57.     def H(self):
  58.         buff = self.letterBuffer()
  59.         self.lineVertical(buff)
  60.         self.lineHorizontal(buff, y=4)
  61.         self.lineVertical(buff, x=6)
  62.         return buff
  63.  
  64.     def O(self):
  65.         buff = self.letterBuffer()
  66.         self.lineVertical(buff)
  67.         self.lineHorizontal(buff)
  68.         self.lineVertical(buff, x=6)
  69.         self.lineHorizontal(buff, y=8)
  70.         return buff
  71.  
  72.     def N(self):
  73.         buff = self.letterBuffer()
  74.         self.lineVertical(buff)
  75.         self.lineCross(buff)
  76.         self.lineVertical(buff, x=6)
  77.         return buff
  78.  
  79.     def add(self, buff):
  80.         if not self.buffer:
  81.             self.buffer = buff
  82.         else:
  83.             for i in range(len(buff)):
  84.                 self.buffer[i] += [' '] + buff[i]
  85.         return self
  86.        
  87. letters = Letters()
  88. letters.add(
  89.     letters.P()).add(
  90.     letters.Y()).add(
  91.     letters.T()).add(
  92.     letters.H()).add(
  93.     letters.O()).add(
  94.     letters.N()).printBuffer()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement