"""DuckieDai Vertical Asymptote Checker for TI-84 Plus CE Python."""

def duckiedai_intro(program_name):
    title = program_name[:16]
    empty = 16 - len(title)
    left = empty // 2
    right = empty - left
    print("+----------------------+")
    print("|   " + " " * left + title + " " * right + "   |")
    print("|                      |")
    print("|       __             |")
    print("|   ___(o )>  quack!   |")
    print("|   \\ <_. )           |")
    print("|    `---'             |")
    print("|     by DuckieDai     |")
    print("+----------------------+")
    print("Loading...")
    input("Press enter to start ")
    print("\n" * 8)

def clear_screen():
    print("\n" * 8)

def number(prompt):
    while True:
        try:
            return float(input(prompt))
        except ValueError:
            print("Enter a number")

def clean_num(value):
    if abs(value - round(value)) < 0.0000001:
        return str(int(round(value)))
    return str(round(value, 6))

def run_checker():
    clear_screen()
    print("VERTICAL ASYMPTOTE")
    print("------------------")
    print("Use factored form.")
    print("Example: (x-2)^2")
    print("")
    zero = number("Factor zero c: ")
    top_count = int(number("Top copies: "))
    bottom_count = int(number("Bottom copies: "))
    if top_count < 0 or bottom_count < 0:
        print("Counts cannot be negative")
        return
    clear_screen()
    print("RESULT")
    print("------")
    print("Factor: x - (" + clean_num(zero) + ")")
    print("")
    if bottom_count == 0:
        print("Not a denominator")
        print("factor.")
    elif bottom_count > top_count:
        print("VERTICAL ASYMPTOTE")
        print("x =", clean_num(zero))
        print("")
        print("Remaining bottom")
        print("power:", bottom_count - top_count)
    elif bottom_count == top_count:
        print("HOLE")
        print("x =", clean_num(zero))
        print("")
        print("Factor cancels fully.")
    else:
        print("NO VERTICAL")
        print("ASYMPTOTE")
        print("")
        print("Top factor cancels")
        print("the denominator.")

duckiedai_intro("Vert Asymptote")
while True:
    run_checker()
    print("")
    if input("Again? y/n: ").lower() != "y":
        break
clear_screen()
print("DuckieDai says: done!")
