Alphabet Rangoli

  • + 0 comments

    I threw in some math to reflect the structure of the diamond. Could probably consolidate parts of it, but I like how it shows where each part comes from.

    def print_rangoli(size):
        alphabet = "abcdefghijklmnopqrstuvwxyz"
        fill = "-"
        width = 2 * (size - 1)
    
    
        def build_line(index):
            l_text = "".join([alphabet[size - j - 1] + fill for j in range(index)]).rjust(
                width, fill
            )
            c_text = alphabet[size - index - 1]
            r_text = "".join([fill + alphabet[size - j] for j in range(index, 0, -1)]).ljust(
                width, fill
            )
            return l_text + c_text + r_text
    
        i = 0
        while i < 2 * size - 1:
            line_val = -abs(i - (size - 1)) + size - 1
            text = build_line(line_val)
            print(text)
            i += 1