Skip to content

Instantly share code, notes, and snippets.

@hudsonbrendon
Created September 7, 2023 21:24
Show Gist options
  • Save hudsonbrendon/a9cfe2ad44a6128ce4cc3139c4404319 to your computer and use it in GitHub Desktop.
Save hudsonbrendon/a9cfe2ad44a6128ce4cc3139c4404319 to your computer and use it in GitHub Desktop.
import random
# TODO: Implemente a função de busca binária para o computador
def binary_search_guess(low: int, high: int) -> int:
mid = (low + high) // 2
print(f"O computador chutou {mid}!")
return mid
def main():
# TODO: Gere um número aleatório para o jogador adivinhar
random_number = random.randint(1, 1000)
# TODO: Peça ao jogador para escolher um número para o computador adivinhar
computer_number = int(
input("Escolha um número entre 1 e 1000 para o computador adivinhar: ")
)
if computer_number < 1 or computer_number > 1000:
print("Número inválido, informe um número entre 1 e 1000!")
return
# TODO: Inicialize contadores para o número de tentativas
player_count = 0
computer_count = 0
player_finished = False
computer_finished = False
low = 1
high = 1000
# TODO: Faça um loop até que ambos, jogador e computador, adivinhem o número
while True:
# TODO: Implemente a lógica para a tentativa do jogador
if not player_finished:
player_number = int(input("Escolha um número entre 1 e 1000: "))
if player_number < 1 or player_number > 1000:
print("Número inválido, informe um número entre 1 e 1000!")
return
if player_number < random_number:
print("Muito baixo!")
player_count += 1
elif player_number > random_number:
print("Muito alto!")
player_count += 1
else:
print("Você acertou!")
player_count += 1
player_finished = True
# TODO: Implemente a lógica para a tentativa do computador usando busca binária
if not computer_finished:
computer_random_number = binary_search_guess(low, high)
if computer_random_number < computer_number:
print("Muito baixo!")
computer_count += 1
low = computer_random_number + 1
elif computer_random_number > computer_number:
print("Muito alto!")
computer_count += 1
high = computer_random_number - 1
else:
print("O computador acertou!")
computer_count += 1
computer_finished = True
# TODO: Anuncie o vencedor com base no menor número de tentativas
if computer_finished and player_finished:
if player_count < computer_count:
print(
f"Você ganhou com {player_count} jogadas, o computador fez {computer_count} jogadas!"
)
break
elif player_count > computer_count:
print(
f"O computador ganhou, você fez {player_count} jogadas e o computador {computer_count}!"
)
break
else:
print(f"Empate, ambos fizeram {player_count} jogadas!")
break
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment