-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Há alguns problemas com este código:
Na função main(), a linha "p, n, x= entrada()" está tentando passar as variáveis p, n e x como argumentos para a função main(), mas essas variáveis não foram definidas ou dado um valor ainda. Então você precisa passar os valores para p e n e x antes de chamar a função sapinho() como p = int(input()) e n = int(input()). (ex)
Na função verifica(), você não está retornando nada quando a instrução if-else é falsa. Você deve retornar False em vez de nada.
O loop na função main() sempre imprimirá 'VOCÊ GANHA', mesmo que a condição na instrução if-else seja verdadeira. Isso ocorre porque o loop sempre será executado até a conclusão antes que a instrução if-else seja verificada. Para corrigir isso, você deve mover a instrução print('YOU WIN') para fora do loop for, para que seja executada apenas se o loop for concluído sem interrupção.
O meu código ficou assim (com outros nomes de funções):
def pulinho(a1, a2, ap):
if abs(a1 - a2) > ap:
return True
else:
return False
def main():
ap, nc = map(int, input().split()) #entradas
a = input().split()
for i in range(len(a)):
a[i] = int(a[i])
jogo = False
for i in range(nc - 1):
jogo = pulinho(a[i], a[i+1], ap)
if jogo == True:
print('GAME OVER')
break
if jogo == False:
print('YOU WIN')
main()