Git Product home page Git Product logo

nim-game's Introduction

Jogo do nim

Nim é um gênio que perdeu todos os seus desejos para o mercado financeiro, agora ele só tem moedas. Porém, ele está disposto a da-las para você caso você seja bom o suficiente para vencê-lo no jogo dele.

                                                                                            /}
                                                                                         ./`|´\
                                                                                         |_~?¬_`\
                                                                                          ¬^Ö `>/
                                                                                          ~~~ /_
                                                                                        - )¨/    ¨-
      $$                                                                             ,-´ _ _    /  \
      $$                                                                             >-'´  ~`\_/   |
      $$                                                                            ( _ .´  `-´  -´/
      $$                                                          @                  `'´  `¬_   _//
      $$                                                         ( )                   |     ¨'¨_/
      $$                                                        /===\                   \      /
      $$                                               ,-`-._.-´¨¨¨¨ ¨¬_..---.           \     |
      $$      $$                      $$              ((¨,¨\ ¨-._____.--¨ .¬--\..^,     .,)    /
      $$      $$              $$      $$               \'-°^\::          /     '{  3   {¨.:   /
      $$      $$              $$      $$                      \    _    /          ¨~.´'y`,¨\~¨
      $$      $$      $$      $$      $$                       ¨¨\- -/¨¨              ¨¬.{ .3´
      $$      $$      $$      $$      $$                       _,-´ `-_                   ¨
     [--]    [--]    [--]    [--]    [--]                      `-------´

No jogo de nim várias moedas são distribuídas em pilhas diferentes, duas pessoas competem retirando entre 1 a 3 moedas por vez. O jogador que tirar a última moeda da última pilha ganha o jogo e fica com a última moeda

GDD

PLP

Este github é produto do projeto em grupo da matéria paradigmas de linguagens de programação. Ao longo do período esse jogo será desenvolvido por 5 pessoas em duas linguagens de programação com paradigmas diferentes

  • haskell (paradigma funcional)
  • prolog (paradigma logico)

Arquitetura

A arquitetura e conexão entre os módulos da aplicação usada para basear a implementação está representada nesse fluxograma, definindo o que cada função/módulo faz e suas devidas entradas e saídas.

image

Link para o mapa: https://excalidraw.com/#json=cwhNg7nB5eGvZCaGwaVOZ,P9ILKHqmtWaUl6-FTzPr0g

Legenda

Nós:

  • Azul = Funções de utilidades (Funções que printam na tela, retornam as pilhas feitas, retornam as dificuldades, não necessariamente possuem a lógica do jogo por trás);
  • Amarelo = Funções de lógica do jogo (Funções que possuem a lógica do jogo por trás, onde o jogo acontece);
  • Vermelho = Funções de validação de entrada (Funções que validam as entradas dos jogadores);
  • Roxo = Funções das engines de bot (Funções que representam o bot e seus cálculos);
  • Verde = Fluxograma do jogo (Caminhos que podem ser tomados).

Textos:

  • Preto = Textos de explicação da função (O que ela faz e como ela faz);
  • Laranja = Textos de explicação da entrada da função (Variáveis, nomes e seus tipos);
  • Verde = Textos de explicação da saída (Qual o tipo da saída e o que aquela saída representará no jogo).

Jogando em Haskell

Para conseguir executar o código em haskell é necessário baixar a biblioteca Random

cabal install --lib random

Após isso é possível jogá-lo sem nem precisar compilar, usando esse código dentro da pasta src:

runghc StartGame.hs

Jogando em Prolog

Para conseguir executar o código em Prolog é recomendável baixar a versão mais atualizada: Link para baixar: https://www.swi-prolog.org/download/stable

Após isso é possível jogá-lo sem nem precisar compilar, usando esse código dentro da pasta src:

swipl -q -f StartGame.pl


Equipe

Nome Matrícula E-mail
Douglas Alves de Sousa 121111728 [email protected]
Gabriel Pombo Almeida Cirne Diniz 121111468 [email protected]
Guilherme Silva Toledo 121110792 [email protected]
Jackson Alves da Silva Souza 121110759 [email protected]
Mayara Brito Pinheiro 121110615 [email protected]

nim-game's People

Contributors

dinizgab avatar douglasalves0 avatar drawnator avatar mayabrito avatar souzajackson avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

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.