Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Ajuda em um projeto pessoal

Olá terminei o curso aqui na alura de Python crie sua primeira aplicação e estou tentando colocar os conhecimentos em pratica, tomei como um projeto de fim de curso tentar criar o jogo do número secreto utilizando python e gostaria de uma opinião, correções a cerca do codigo que venho desenvolvendo.

print('''

░░░▒█ ▒█▀▀▀█ ▒█▀▀█ ▒█▀▀▀█   ▒█▀▀▄ ▒█▀▀▀█   ▒█▄░▒█ ▒█░▒█ ▒█▀▄▀█ ▒█▀▀▀ ▒█▀▀█ ▒█▀▀▀█   ▒█▀▀▀█ ▒█▀▀▀ ▒█▀▀█ ▒█▀▀█ ▒█▀▀▀ ▀▀█▀▀ ▒█▀▀▀█ 
░▄░▒█ ▒█░░▒█ ▒█░▄▄ ▒█░░▒█   ▒█░▒█ ▒█░░▒█   ▒█▒█▒█ ▒█░▒█ ▒█▒█▒█ ▒█▀▀▀ ▒█▄▄▀ ▒█░░▒█   ░▀▀▀▄▄ ▒█▀▀▀ ▒█░░░ ▒█▄▄▀ ▒█▀▀▀ ░▒█░░ ▒█░░▒█ 
▒█▄▄█ ▒█▄▄▄█ ▒█▄▄█ ▒█▄▄▄█   ▒█▄▄▀ ▒█▄▄▄█   ▒█░░▀█ ░▀▄▄▀ ▒█░░▒█ ▒█▄▄▄ ▒█░▒█ ▒█▄▄▄█   ▒█▄▄▄█ ▒█▄▄▄ ▒█▄▄█ ▒█░▒█ ▒█▄▄▄ ░▒█░░ ▒█▄▄▄█''')

import random

class Jogo_Do_Numero_Secreto:
    def __init__(self):
        print('\nEscolha um numero entre 1 e 10')
        self.numero_secreto = random.randint(1, 10)
        self.chute = int(input('Digite um número: '))

    def verificar_chute(self):
        if self.numero_secreto > self.chute:
            return 'numero secreto é maior'
        elif self.numero_secreto < self.chute:
            return "numero secreto é menor"
        else:
            return 'Você acertou!'

jogo = Jogo_Do_Numero_Secreto()

# tive problemas com a forma correta de utilizar o while, então recorri ao Gemini para me auxiliar na utilização 
while True:
    chute = int(input('Digite um número: '))
    resultado = jogo.verificar_chute(chute)
    print(resultado)
    if resultado == 'Você acertou!':
        break        
    
resultado = jogo.verificar_chute()
print(resultado)

vim usando os conhecimentos adquiridos nas aulas e junto a W3School e cheguei a esse código, que causa um bug depois que faz a segunda tentativa.

2 respostas
solução!

Oi Daniel,

Excelente iniciativa em aplicar os conhecimentos do curso em um projeto prático! 👏

Pequena correção: você precisa remover o argumento chute ao chamar o método verificar_chute dentro do loop while, e também remover a chamada duplicada do método verificar_chute fora do loop.

Segue o código corrigido:

print('''

░░░▒█ ▒█▀▀▀█ ▒█▀▀█ ▒█▀▀▀█   ▒█▀▀▄ ▒█▀▀▀█   ▒█▄░▒█ ▒█░▒█ ▒█▀▄▀█ ▒█▀▀▀ ▒█▀▀█ ▒█▀▀▀█   ▒█▀▀▀█ ▒█▀▀▀ ▒█▀▀█ ▒█▀▀█ ▒█▀▀▀ ▀▀█▀▀ ▒█▀▀▀█ 
░▄░▒█ ▒█░░▒█ ▒█░▄▄ ▒█░░▒█   ▒█░▒█ ▒█░░▒█   ▒█▒█▒█ ▒█░▒█ ▒█▒█▒█ ▒█▀▀▀ ▒█▄▄▀ ▒█░░▒█   ░▀▀▀▄▄ ▒█▀▀▀ ▒█░░░ ▒█▄▄▀ ▒█▀▀▀ ░▒█░░ ▒█░░▒█ 
▒█▄▄█ ▒█▄▄▄█ ▒█▄▄█ ▒█▄▄▄█   ▒█▄▄▀ ▒█▄▄▄█   ▒█░░▀█ ░▀▄▄▀ ▒█░░▒█ ▒█▄▄▄ ▒█░▒█ ▒█▄▄▄█   ▒█▄▄▄█ ▒█▄▄▄ ▒█▄▄█ ▒█░▒█ ▒█▄▄▄ ░▒█░░ ▒█▄▄▄█''')

import random

class Jogo_Do_Numero_Secreto:
    def __init__(self):
        print('\nEscolha um numero entre 1 e 10')
        self.numero_secreto = random.randint(1, 10)
        self.chute = 0 # Inicializa o chute com um valor padrão

    def verificar_chute(self):
        if self.numero_secreto > self.chute:
            return 'numero secreto é maior'
        elif self.numero_secreto < self.chute:
            return "numero secreto é menor"
        else:
            return 'Você acertou!'

jogo = Jogo_Do_Numero_Secreto()

while True:
    jogo.chute = int(input('Digite um número: '))
    resultado = jogo.verificar_chute()
    print(resultado)
    if resultado == 'Você acertou!':
        break

Para saber mais: Loop while em Python

Continue praticando e explorando os desafios da programação! 💪

tux matrix Caso este post o tenha ajudado, marque-o como solucionado ☑️. Bons Estudos! 🤓

Obrigado pelas dicas!