Code Monkey home page Code Monkey logo

jogo-dos-8's Introduction

8-Puzzle (Jogo dos oito)

  • Trabalho de Inteligência artificial da Universidade Federal do Piauí. O objetivo deste trabalho é implementar 4 buscas, que são:
  • Busca em largura
  • Busca em profundidade
  • Busca gulosa
  • Busca A*
  • Implementamos o trabalho de uma forma que não fosse necessário guardar estados visitados. Para contornar loops e repetição de estados já visitados decidimos implementar o que chamamos de "escolha aleatória de movimento". Isso significa que sempre quando a busca chegar a um estado provavelmente repetido, ele irá aleatóriamente, decidir se escolhe ou não esse estado como jogada possível. Também ressaltamos que sempre quando houver a análise de movimentos possíveis para um estado, todas as buscas sempre irão fazer movimentos diferentes dos estados que eles foram gerados.

Modo de uso

  • Este repositório guarda apenas os algoritmos de busca. Para executar é necessário utilizar SDK dotnet .NET. Após a instalação execute o comando na raiz do projeto: dotnet run. Lembre-se que sempre quando fizer alguma alteração no código, execute dotnet clean.

  • No diretório raíz do projeto há 4 arquivos com o nome de todas as buscas. Esses arquivos são as interfaces que fazem uso direto de cada busca. Para ver exemplos de como usar, abra o arquivo Program.cs e observe no método main as chamadas feitas a cada uma delas.

Métodos implementados nas interfaces:

  • Construtor: recebe o estado inicial e final de busca e realiza a busca;
  • custoDeCaminho: calcula e retorna o custo do caminho;
  • custoDeEspaco: calcula e retorna o custo de espaço;
  • custoDeTempo: calcula e retorna o custo de tempo;
  • solucaoEscolhasDosPais: retorna a lista de estados passo a passo até a resposta final;
  • solucaoFinal: retorna a lista de estados da resposta final;
  • arvoreFinal: retorna a lista de estados da arvore completa;
  • tempoExecutado: retorna o tempo de execução da busca;

Contribuintes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.