0% acharam este documento útil (0 voto)
2 visualizações2 páginas

Assistente Virtual em Python: Funcionalidades e Desafios

O projeto consistiu na criação de um Assistente Virtual com funcionalidades como operações matemáticas, um mini-jogo de adivinhação, tradução e informações do assistente. O desenvolvimento envolveu decisões de programação significativas, como o uso de CustomTkinter para uma interface mais moderna e a implementação de funções específicas para cada recurso. Durante o processo, foram enfrentadas dificuldades, como a inserção de imagens e a lógica do mini-jogo, que levaram a um aprofundamento no entendimento de programação e interfaces gráficas.

Enviado por

Renata Manso
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações2 páginas

Assistente Virtual em Python: Funcionalidades e Desafios

O projeto consistiu na criação de um Assistente Virtual com funcionalidades como operações matemáticas, um mini-jogo de adivinhação, tradução e informações do assistente. O desenvolvimento envolveu decisões de programação significativas, como o uso de CustomTkinter para uma interface mais moderna e a implementação de funções específicas para cada recurso. Durante o processo, foram enfrentadas dificuldades, como a inserção de imagens e a lógica do mini-jogo, que levaram a um aprofundamento no entendimento de programação e interfaces gráficas.

Enviado por

Renata Manso
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

Relatório - Projeto Final Python

Objetivo do projeto
O objetivo deste projeto foi criar um Assistente Virtual que possa dialogar com o
utilizador e executar tarefas simples de maneira estruturada. O trabalho possibilita aplicar os
conhecimentos adquiridos na Introdução a Programação, como variáveis, condicionais, loops,
funções e explorar bibliotecas mais avançadas que ampliam as capacidades.
Funcionalidades do projeto
O Assistente Virtual criado inclui quatro funcionalidades principais:
 Operações Matemáticas;
 Mini-jogo “Adivinhar o número”;
 Tradutor;
 Informações do Assistente;
Principais decisões de programação
A criação do nosso Assistente Virtual compreendeu diversas decisões de programação
que influenciaram diretamente a organização, funcionalidade e estabilidade do projeto. Uma
das primeiras escolhas foi a utilização do comando mainloop() para garantir que a interface
gráfica permaneça ativa durante toda a execução da aplicação, este método é essencial para
que a janela reaja às ações do utilizador, permitindo que botões, entradas e frames operem
adequadamente até o programa ser finalizado ou encerrado.
Outra escolha foi a utilização da biblioteca CustomTkinter, que oferece opções de
personalização mais sofisticadas e avançadas do que o Tkinter. Com esta biblioteca, temos a
capacidade de implementar o modo escuro, alterar as cores de botões e Labels, e desenvolver
uma interface mais moderna e intuitiva, tornando o assistente mais visualmente atraente e fácil
de usar. Em conjunto com isso, decidimos inserir a biblioteca GoogleTranslator da
deep_translator para desenvolver nossa funcionalidade adicional, a tradução de texto de
português para espanhol. Esta decisão permitiu expandir as habilidades do assistente e
desenvolver uma ferramenta prática e útil.
Em relação à estrutura/organização interna do programa, a função mostrar_frame()
desempenha um papel crucial, esta função possibilitou a transição entre várias seções da
interface, como o menu, a operações matemáticas, o mini-jogo ou o tradutor, assegurando que
apenas um frame fosse mostrado à vez, esta abordagem deixou o código mais estruturado,
melhorou a navegação para o usuário e preveniu a sobreposição de elementos gráficos. Para
além dessas funções, desenvolvemos diversos blocos distintos para cada recurso principal. A
função continuar() que verifica o nome do utilizador antes de abrir o menu, garantindo que a
interação inicial ocorre adequadamente. A função calcular(), que realiza as operações
matemáticas, foi estruturada para ler os valores inseridos (nas linhas 84 a 86), lidar com erros
frequentes e evitar cenários como a divisão por zero (nas linhas 99 a 101). No mini-jogo, as
funções iniciar_jogo() e jogar() foram essenciais para administrar tentativas, verificar os
palpites e controlar a lógica do próprio jogo, para selecionar o número secreto, utilizamos a
função [Link](), que gere um número inteiro aleatório entre 1 e 10 (nas linhas 158 a
160 e 188 a 191). Por fim, a função traduzir() permite converter texto de português para
espanhol, verificando o campo de entrada e detetando possíveis falhas de ligação à internet
(nas linhas 237 e 238).
Exemplo de execução (vídeos – clique duas vezes no vídeo)
Dificuldades encontradas
No decorrer do desenvolvimento do projeto, enfrentamos algumas dificuldades que nos
levaram a pesquisar, testar soluções e aprofundar nosso entendimento sobre programação e
interfaces gráficas.
Uma das dificuldades enfrentadas foi a tentativa de inserir uma imagem na interface
gráfica, em particular o logotipo da escola (Colégio Camões). Apesar de termos explorado
diversas maneiras de adicionar imagens no CustomTkinter, a biblioteca mostrou algumas
limitações, especialmente no suporte a certos tipos de ficheiros e na forma como as imagens
precisam de ser carregadas e geridas.
Experimentamos várias estratégias, mas nenhuma funcionou como esperado, além
disso, com base no tempo para finalizar o projeto, não conseguimos abordar essa dificuldade
de forma mais detalhada, o que impediu uma revisão mais eficaz dessa parte da aplicação.
Outra dificuldade foi o desafio que apareceu durante a implementação do mini-jogo
“Adivinhar o Número”. De início, não conseguimos monitorizar corretamente o número de
tentativas para cada grau de dificuldade. As tentativas não eram atualizadas como o esperado
e, em certas situações, o jogo prosseguia mesmo após o limite estabelecido. Foi preciso
reavaliar a lógica do jogo, reorganizar as variáveis e compreender a distinção entre variáveis
globais e locais. Ao modificar essas variáveis e realocar alguns comandos, conseguimos
finalmente que cada nível apresentasse a quantidade exata de tentativas. Esses desafios foram
fundamentais para nosso avanço, pois forçaram-nos a refletir de maneira mais analítica e a
procurar respostas além do que já conhecíamos. Com isto, obtivemos mais autonomia na
resolução de problemas, uma melhor compreensão das bibliotecas utilizadas e uma confiança
aumentada na criação de programas com diversas funcionalidades.

Você também pode gostar