"""
fool around with stacks of cheese
"""


def move_cheeses(n, source, intermediate, destination):
    """Move n cheeses from source to destination

    @param int n:
    @param int source:
    @param int intermediate:
    @param int destination:
    @rtype: None
    """
    if n > 1:  # fill this in!
        move_cheeses(n - 1, source, destination, intermediate)
        move_cheeses(1, source, intermediate, destination)
        move_cheeses(n - 1, intermediate, source, destination)
    else:  # just 1 cheese --- leave this out for now!
        print("{} -> {}".format(source, destination))


if __name__ == "__main__":
    print("move 1 cheese:")
    move_cheeses(1, 1, 2, 3)
    print("move 2 cheeses:")
    move_cheeses(2, 1, 2, 3)
    print("move 3 cheess:")
    move_cheeses(3, 1, 2, 3)


