-4
def hello_quantum(string):
"""
hello_quantum: cad. caracteres --> lógico
funcao permite jogar o jogo praticamente, permite o uso das portas para manipular o tabuleiro
com o objetivo de igualar o tabuleiro inicial ao tabuleiro introduzido
"""
a = eval(string.replace(":",",")) # transforma o string num tuplo, onde primeiro elemento eh o tabuleiro,
# e segundo eh o numero jogadas maximas
num_jogadas = a[1]
t_objetivo = str_para_tabuleiro(str(a[0]))
counter = 0
t_inicial = tabuleiro_inicial()
tabu = []
print("Bem-vindo ao Hello Quantum!\nO seu objetivo e chegar ao tabuleiro:")
print(tabuleiro_para_str(t_objetivo))
print("Comecando com o tabuleiro que se segue:")
print(tabuleiro_para_str(t_inicial))
while num_jogadas > counter and not (t_objetivo == tabu):
in_porta = input("Escolha uma porta para aplicar (X, Z ou H): ")
in_lado = input("Escolha um qubit para analisar (E ou D): ")
if in_porta == "X":
if in_lado == "E":
tabu = porta_x(t_inicial,"E")
else:
tabu = porta_x(t_inicial,"D")
print(tabuleiro_para_str(tabu))
elif in_porta == "Z":
if in_lado == "E":
tabu = porta_z(t_inicial,"E")
else:
tabu = porta_z(t_inicial,"D")
print(tabuleiro_para_str((tabu)))
elif in_porta == "H":
if in_lado == "E":
tabu = porta_h(t_inicial,"E")
else:
tabu = porta_h(t_inicial,"D")
print(tabuleiro_para_str(tabu))
counter += 1
if tabuleiros_iguais(tabu,t_objetivo):
print("Parabens, conseguiu converter o tabuleiro em %s jogadas!"%(counter))
return True
else:
return False
Function made with data abstraction, so calls several other functions.