Este é um projeto de uma Máquina de Turing implementada com Vue.js, que verifica sequências de caracteres para garantir que a quantidade de 'a' seja igual à quantidade de 'b'. O projeto apresenta uma interface interativa onde o usuário pode iniciar a máquina automaticamente ou passo a passo, observando as transições e o comportamento da máquina.
- Iniciar Máquina: Executa a máquina de forma automática, processando a sentença inserida pelo usuário até a aceitação ou rejeição.
- Modo Passo a Passo: Permite a execução manual da máquina, onde cada passo é visualizado em detalhes até que a sentença seja aceita, rejeitada ou até que o usuário resete a máquina.
- Resetar Máquina: Limpa o estado atual da máquina, permitindo que uma nova sentença seja inserida e analisada.
- Geração de Sentenças Aleatórias: Gera uma sentença aleatória de
'a'e'b'para facilitar os testes.
- Vue.js: Framework JavaScript para construção da interface e gerenciamento de estados.
- HTML e CSS: Estrutura e estilização da interface.
- JavaScript: Implementação da lógica da Máquina de Turing e suas transições.
O projeto está estruturado da seguinte maneira:
index.html: Arquivo principal que contém a estrutura HTML e inclui os scripts do Vue.js e JavaScript.styles.css: Arquivo CSS utilizado para estilizar a interface da aplicação.app.js: Arquivo JavaScript que contém toda a lógica da Máquina de Turing e a manipulação do DOM para atualização da interface.
- Clone o repositório:
git clone https://github.com/seu-usuario/maquina-turing-vue.git
- Navegue até o diretório do projeto:
cd maquina-turing-vue - Abra o arquivo
index.htmldiretamente no navegador ou sirva a aplicação com um servidor local (como o Live Server no VSCode).
- Insira uma sequência de
'a'e'b'no campo de entrada. - Clique em Iniciar Máquina para executar o processamento automático da sequência, ou clique em Passo a Passo para executar cada transição individualmente.
- O resultado será exibido indicando se a sentença foi aceita ou rejeitada.
- Use o botão Resetar Máquina para limpar o estado atual e inserir uma nova sequência.
- Utilize o botão Gerar Sentença Aleatória para testar rapidamente diferentes sequências.
A máquina segue as seguintes regras para processamento:
-
Estado Inicial (q0):
- Se encontrar
'a', marca como'X'e vai para o estadoq2. - Se encontrar
'b', marca como'X'e vai para o estadoq1. - Se encontrar
'X', continua no estadoq0. - Se encontrar o delimitador
'β', vai para o estado de aceitaçãoq4.
- Se encontrar
-
Estado
q1:- Se encontrar
'a', marca como'X'e vai para o estadoq3. - Se encontrar
'b', continua no estadoq1.
- Se encontrar
-
Estado
q2:- Se encontrar
'a', continua no estadoq2. - Se encontrar
'b', marca como'X'e vai para o estadoq3.
- Se encontrar
-
Estado
q3:- Se encontrar
'a'ou'b', move-se para a esquerda para continuar o processamento.
- Se encontrar
-
Estado de Aceitação (q4):
- Estado final que indica que a sentença foi aceita.