Giter VIP home page Giter VIP logo

chess-pgn-parser's Introduction

Interpretador para Jogo de Xadrez ♟️

Programa para interpretar e interagir com arquivos .pgn, exibindo a partida e podendo ir e voltar entre as jogadas.

🟢 Funcionamento do programa

  1. data.h/data.cpp Criar estruturas capazes de guardar os dados a serem extraídos do .pgn.
  2. catcher.h/catcher.cpp Extrair os dados do .pgn e alocar nas estruturas já criadas.
  3. interpteter.h/interpreter.cpp Interpreta os dados salvos e associa a dados que possam ser exibidos no tabuleiro para o usário. Responsável por chegar xeques e xeque-mates também.
  4. printer.h/printer.cpp Printar o tabuleiro e as peças nas respectivas posições.

plano futuro: implementar CRUD na interação do usuário.

🟡 Status dos arquivos

  1. main.cpp: working ✔️
  2. data.h/data.cpp : bug with catcher 🪲
  3. catcher.h/catcher.cpp : bug with data 🪲
  4. interpteter.h/interpreter.cpp: not implemented
  5. printer.h/printer.cpp: working ✔️

🔴 Problema atual

Estou tendo multiplas declarações das stucts durante o uso das headers.

💻 Referência: PGN - Portable Game Notation

Entensão dos arquivos na pasta game files usada para descrever propriedades dos jogos usando as Seven Tag Roasters para indicar as principais informações e mais algumas etiquetas adicionais em algumas das partidas.

A representação do jogo vem logo abaixo utilizando a notação movetext, em particular para estes arquivos no modelo NAP(Notação Algébrica Padrão).

Para mais detalhes sobre o PGN, clique aqui.

chess-pgn-parser's People

Contributors

hgrafa avatar

Stargazers

 avatar

Watchers

 avatar

chess-pgn-parser's Issues

Design do projeto está procedural

No momento em que foi criado o projeto, eu ainda não dominava a programação orientada a objetos em C++.

Por conta disso foi seguido um modelo procedural, com diversas structs e ponteiros, que não contribuem para a legibilidade e até mesmo no desenvolvimento das próximas etapas do código.

Multiple struct declaration by headers

Multiple struct declaration by headers

Estou com um problema na utilização das bibliotecas que criei para integrar o programa. Consigo entender o erro, mas não estou conseguindo construir uma solução. Meu código tem o seguinte fluxo:

data.h > data.cpp > catcher.h > catcher.cpp > main.cpp

data: Cria structs capazes de armazernar dados sobre a partida e dados sobre o movimento dos jogadores em cada round.

catcher: Extrai do aquivo .pgn as informações sobre a partida e insere nas estruturas oferecidas pela data.h e data.cpp

As funções do catcher devem estar disponíveis na main, para que seja possível usar a medida que precisarmos ler o pgn.

Quando crio o catcher, ele usa #include "data.h" e na main quando incluímos a catcher.h ela novamente é chamada e acaba por tentar recriar as structs.

Print the Chessboard

Dificuldade em alinhar as barras para formar um bom tabuleiro, e possível problema de iterar o tabuleiro para ir e voltar no decorrer das jogadas.

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.