Code Monkey home page Code Monkey logo

projeto-logica-pysat's Introduction

Projeto Lógica pySAT

Repositório do projeto da disciplina Lógica para Computação do 4º semestre do curso Ciências da Computação do IFCE Maracanaú

Sobre o Projeto

O objetivo deste projeto é utilizar a biblioteca pySAT, uma ferramenta Python para resolver problemas de satisfatibilidade proposicional (SAT), para resolver o jogo Defesa com Torres, um jogo de estratégia em que você deve posicionar canhões nas torres para defender-se dos atacantes que se aproximam em uma grade retangular.

O jogo Defesa com Torres funciona da seguinte forma:

  • A grade retangular tem dimensões M x N, onde M é o número de linhas e N é o número de colunas.
  • A grade contém elementos do jogo, representados por caracteres, que podem ser:
    • "T" - Torres: são as estruturas que devem ser defendidas dos atacantes. Cada torre tem dois canhões que devem ser posicionados formando ângulos de 90° entre si. Os canhões disparam balas que podem atingir os atacantes, mas também podem ser bloqueadas por obstáculos.
    • "n" - Atacantes: são os inimigos que devem ser eliminados pelos canhões das torres. Os atacantes não param a bala dos canhões, ou seja, a bala pode atravessar vários atacantes até encontrar um obstáculo ou sair da grade.
    • "#" - Obstáculos: são elementos que não são destruídos e conseguem parar a bala dos canhões. Os obstáculos podem ser usados para proteger as torres ou dificultar o alcance dos atacantes.
  • A entrada do jogo é um mapa com as dimensões da grade e os elementos do jogo, representados por caracteres. Por exemplo:
5 9
.n..T..n.
.T..n....
.n..#..n.
....n..T.
.n..T..n.
  • A saída do jogo é um mapa com as orientações dos canhões nas torres, representadas por números. As orientações dos canhões são:
    • "1" - Canhão virado para a esquerda e para baixo
    • "2" - Canhão virado para a direita e para baixo
    • "3" - Canhão virado para a direita e para cima
    • "4" - Canhão virado para a esquerda e para cima
  • O objetivo do jogo é posicionar os canhões nas torres de forma que todos os atacantes sejam atingidos por pelo menos uma bala e que nenhuma torre seja atingida por nenhuma bala. Se houver mais de uma solução possível, o jogo pode retornar qualquer uma delas. Por exemplo, para a entrada acima, uma possível saída seria:
.n..4..n.
.2..n....
.n..#..n.
....n..4.
.n..3..n.

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.