Skip to content

henriquebrnetto/aps7_alglin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aps7_alglin

Jogo da Forca Automático com Teoria da Informação

Este projeto implementa um jogador automático para o jogo de forca, utilizando conceitos de teoria da informação e análise de frequência para otimizar suas tentativas de adivinhação. O jogador possui 5 vidas e tenta maximizar suas chances de vitória reduzindo o vocabulário de palavras possíveis a cada tentativa com base na informação obtida.

Estratégia e Conceitos Utilizados

A estratégia do jogador se baseia principalmente em análise de frequência e filtragem incremental do vocabulário para escolher a letra que mais provavelmente faz parte da palavra secreta.

  1. Inicialização e Cálculo de Frequências de Letras:

    • A primeira etapa é a inicialização do vocabulário. Ao iniciar uma nova partida, o vocabulário é carregado e filtrado para conter apenas palavras que têm o mesmo comprimento da palavra secreta. A classe Jogador então analisa a frequência de cada letra nas palavras candidatas, usando um contador para armazenar a frequência de cada letra disponível. Essa análise de frequência é armazenada no dicionário self.probs, que o jogador usa para determinar as letras mais comuns nas palavras possíveis.
  2. Filtragem Incremental do Vocabulário:

    • Após cada tentativa de letra, o método filter_palavras é chamado para ajustar o vocabulário. Quando o jogador tenta uma letra, ele recebe de volta uma lista de posições onde essa letra aparece (ou uma lista vazia se não houver ocorrências). Com essas informações, o vocabulário é reduzido para incluir apenas palavras que possuem a letra nas mesmas posições reveladas. Se a letra não estiver presente, todas as palavras que contêm essa letra são removidas do vocabulário.
    • Esse processo de filtragem incremental ajuda o jogador a eliminar palavras irrelevantes com base nas letras já testadas, focando o vocabulário cada vez mais na palavra secreta. Em seguida, o método compute_probs é chamado novamente para recalcular a frequência de letras com base no vocabulário atualizado.
  3. Escolha de Letras com Maior Frequência:

    • O jogador utiliza o método guess_letter para selecionar a próxima letra com base nas frequências calculadas. Ele escolhe a letra que aparece com maior frequência nas palavras restantes, o que maximiza a chance de encontrar uma letra presente na palavra secreta, evitando tentativas erradas e conservando vidas.

Conclusão

Os conceitos de análise de frequência e filtragem incremental são aplicados diretamente para otimizar a eficácia do jogador, aumentando as chances de acertar a palavra secreta com o mínimo de tentativas erradas. Essa abordagem demonstra como métodos de teoria da informação podem ser aplicados em estratégias de jogos clássicos para melhorar decisões com base em dados e otimização. """

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors