a = "a" b = "b" c = "c" A = [a,b,c] B = [] C = [] aloc = "" bloc = "" cloc = "" def error(): print("Error: You cant do this move.") #--------------------a-----------------------------------------------------# def a_location(): global a global b global c global A global B global C global aloc if a in A: aloc = "A" return aloc elif a in B: aloc = "B" return aloc elif a in C: aloc = "C" return aloc def a_bewegen(): global a global b global c global A global B global C global aloc global bloc global cloc if aloc == bloc or aloc == cloc: error() return elif aloc == "A": move = input("Wohin möchtest du a bewegen? (B/C) ") if move == "A": error() return elif aloc == "B": move = input("Where do you want to move? (A/C) ") if move == "B": error() return elif aloc == "C": move = input("Where do you want to move? (A/B) ") if move == "C": error() return if move == "A": if cloc == "A" or bloc == "A": error() return else: A.append(a) if aloc == "B": B.remove(a) elif aloc == "C": C.remove(a) elif move == "B": if cloc == "B" or bloc == "B": error() return else: B.append(a) if aloc == "A": A.remove(a) elif aloc == "C": C.remove(a) elif move == "C": if cloc == "C" or bloc == "C": error() return else: C.append(a) if aloc == "A": A.remove(a) elif aloc == "B": B.remove(a) #--------------------b-----------------------------------------------------# def b_location(): global a global b global c global A global B global C global bloc if b in A: bloc = "A" return bloc elif b in B: bloc = "B" return bloc elif b in C: bloc = "C" return bloc def b_bewegen(): global a global b global c global A global B global C global aloc global bloc global cloc if bloc == cloc : print("You can't move this.") return elif bloc == "A": move = input("Wohin möchtest du a bewegen? (B/C) ") if move == "A": error() return elif bloc == "B": move = input("Where do you want to move? (A/C) ") if move == "B": error() return elif bloc == "C": move = input("Where do you want to move? (A/B) ") if move == "C": error() return if move == "A": if cloc == "A": error() return else: A.append(b) if bloc == "B": B.remove(b) elif bloc == "C": C.remove(b) elif move == "B": if cloc == "B": error() return else: B.append(b) if bloc == "A": A.remove(b) elif bloc == "C": C.remove(b) elif move == "C": if cloc == "C": error() return else: C.append(b) if bloc == "A": A.remove(b) elif bloc == "B": B.remove(b) #--------------------c-----------------------------------------------------# def c_location(): global a global b global c global A global B global C global aloc global bloc global cloc if c in A: cloc = "A" return cloc elif c in B: cloc = "B" return cloc elif c in C: cloc = "C" return cloc def c_bewegen(): global a global b global c global A global B global C global cloc if cloc == "A": move = input("Wohin möchtest du a bewegen? (B/C) ") if move == "A": error() elif cloc == "B": move = input("Where do you want to move? (A/C) " ) if move == "B": error() elif cloc == "C": move = input("Where do you want to move? (A/B) ") if move == "C": error() if move == "A": if cloc == "A": error() return else: A.append(c) if cloc == "B": B.remove(c) elif cloc == "C": C.remove(c) elif move == "B": if cloc == "B": error() return else: B.append(c) if cloc == "A": A.remove(c) elif cloc == "C": C.remove(c) elif move == "C": if cloc == "C": error() return else: C.append(c) if cloc == "A": A.remove(c) elif cloc == "B": B.remove(c) #----------------------------------Schleife-------------------------------------------# def game(): while True: global a global b global c global A global B global C global aloc global bloc global cloc a_location() b_location() c_location() print("Plates:") print(" a -> large, b -> middle, c -> small") print(A) print(B) print(C) choose_move = input("Which plate do you want to move? (a/b/c) " ) if choose_move == "a": a_bewegen() elif choose_move == "b": b_bewegen() elif choose_move == "c": c_bewegen() else: "unvalid input." #End of game if C == [a,b,c]: print("You solved the game! Congratulations!") trigger = input("Do you want to play again? (y/n) ") if trigger == "y": #Variabel reset A = [a,b,c] B = [] C = [] aloc = "" bloc = "" cloc = "" #Lauching game game() elif trigger == "n": break else: return game()