Como Criar Jogo Número Secreto com Reconhecimento de Voz em Python
Olá a todos, desta vez irei abordar o passo a passo da criação do jogo de adivinhação número secreto em Python, vamos usar o reconhecimento de voz para interação com o usuário.
O que é o jogo Número Secreto?
O jogo de adivinhação de número secreto é um clássico, onde o jogador tenta adivinhar um número aleatório dentro de um intervalo especificado. No nosso caso, o intervalo é de 1 a 100. Vamos implementar este jogo de forma interativa, onde o jogador pode falar suas tentativas em vez de digitá-las.
Quais as Bibliotecas Utilizadas:
- speech_recognition: Esta biblioteca nos permite capturar e interpretar a fala do usuário.
- pyttsx3: Esta biblioteca é usada para sintetizar a fala e fornecer feedback de voz ao usuário.
Explicando Passo a Passo Cada uma das Funções:
- ouvir_microfone(): Esta função captura a entrada de voz do usuário, ajusta o ruído ambiente e tenta reconhecer a fala usando o Google Speech Recognition. Se a fala for reconhecida com sucesso, retorna a frase; caso contrário, retorna
None
.
def ouvir_microfone():
recognizer = sr.Recognizer()
microphone = sr.Microphone()
with microphone as source:
recognizer.adjust_for_ambient_noise(source)
audio = recognizer.listen(source)
try:
frase = recognizer.recognize_google(audio, language='pt-BR')
return frase
except sr.UnknownValueError:
print("Não entendi o que você disse.")
falar("Não entendi o que você disse.")
return None
- falar(texto): Esta função sintetiza a fala do programa usando o pyttsx3. Ela recebe uma string como entrada e a transforma em fala.
def falar(texto):
engine = pyttsx3.init()
engine.say(texto)
engine.runAndWait()
- apresentacao(): Esta função imprime uma mensagem de introdução e instruções ao jogador. Ela informa ao jogador que ele precisa adivinhar um número secreto de 1 a 100.
def apresentacao():
print("Adivinhe o número secreto de 1 a 100:")
falar("Adivinhe o número secreto de 1 a 100:")
- jogo_adivinhacao(): Esta função contém a lógica principal do jogo. Um número secreto é gerado aleatoriamente entre 1 e 100, e o jogador é solicitado a adivinhá-lo usando sua voz. O programa fornece feedback de voz se a tentativa do jogador é maior, menor ou igual ao número secreto. O jogo continua até que o jogador adivinhe corretamente o número secreto, momento em que o programa informa quantas tentativas foram necessárias para adivinhar o número.
def jogo_adivinhacao():
numero_secreto = random.randint(1, 100)
tentativas = 0
while True:
tentativa = ouvir_microfone()
if tentativa:
try:
tentativa_numero = int(tentativa)
tentativas += 1
if tentativa_numero < numero_secreto:
print("O número secreto é maior.")
falar("O número secreto é maior.")
elif tentativa_numero > numero_secreto:
print("O número secreto é menor.")
falar("O número secreto é menor.")
else:
print(f"Parabéns! Você acertou o número secreto {numero_secreto} com {tentativas} tentativas.")
falar(f"Parabéns! Você acertou o número secreto {numero_secreto} com {tentativas} tentativas.")
break
except ValueError:
print("Por favor, diga um número válido.")
falar("Por favor, diga um número válido.")
Qual a Lógica do Jogo:
- O número secreto é gerado aleatoriamente entre 1 e 100.
- O jogador é solicitado a adivinhar o número secreto usando sua voz.
- O programa fornece feedback de voz se a tentativa do jogador é maior, menor ou igual ao número secreto.
- O jogo continua até que o jogador adivinhe corretamente o número secreto.
- O programa informa ao jogador quantas tentativas foram necessárias para adivinhar o número secreto.
Concluindo:
Espero ter conseguido mostrar como implementar o jogo número secreto com reconhecimento de voz em Python de forma simples e objetiva. Deixando assim este jogo mais acessível para todos, sem a necessidade de digitar as tentativas.
Vamos Disseminar os Conhecimentos e Transbordar Tudo o que Aprendemos!
Segue o Link do meu LinkedIn: https://www.linkedin.com/in/carlos-cgs/
Segue o Link do meu GitHub contendo todo o código: https://github.com/Carlos-CGS/ProjetosPython/tree/main/Numero%20Secreto