Git Product home page Git Product logo

checkers2's Introduction

checkers2's People

Contributors

vitora29 avatar vitornl avatar arthurferraz9 avatar leosch92 avatar

Watchers

James Cloos avatar  avatar  avatar

checkers2's Issues

Estimar esforço da interface e da construção da comunicação

Nosso backlog não está levando em conta os custo para fazer a interface (mesmo que já tenha sido feita). Além disso como planejamos fazer a integração, isso terá um custo de implementação também, esses custos devem ficar explícitos para contabilizarmos no orçamento!

Movimentação de Damas incorreta

A dama pode se mover para qualquer diagonal em qualquer quantidade.

Além disso ela terá qeu ser adaptada para utilização de Movement.

Bug na condição de vitoria

File "run.py", line 68, in <module> main() File "run.py", line 16, in main while (rules.win_condition()): File "C:\Users\vitor\Documents\GitHub\TCC00293-ES2\src\code\Controller\rules.py", line 295, in win_condition if possibilities.__contains__(piece): AttributeError: 'NoneType' object has no attribute '__contains__'
Esse traceback aconteceu quando um dos jogadores ficou sem peças jogáveis

Bug de movimentação no tabuleiro

Caso de teste:
0 5
1 4
3 2
4 3
6 5
7 4
1 2
2 3
2 5
1 4
3 2
5 4
5 2
4 3
5 4
3 2
2 1
4 3
4 5
3 4
6 1
5 2
3 6
4 5
7 2
6 3
7 6
6 5
3 0
2 1
3 4
3 2
2 3
2 1
1 2
2 5
1 4
1 2
3 4
4 5
2 3
6 3
5 4
1 6
2 5
5 4
7 6
1 4
0 3
4 3
5 4
2 5
3 4
4 1
3 2
2 3
4 1
6 3
4 5
2 7
7 0
6 1
2 7
1 6
6 1
5 3
5 2
1 6
3 5
2 5
5 0
4 1
5 6
6 5
aqui, ao selecionar a peça 7 6, ele marca a posição 5 6 ao invés da posição 5 4

Movimentação pronta

Como estou desenvolvendo utilizando PyCharm, a IDE não deixa eu não especificar o src/ antes do code/ nos imports. Executar pela linha de comando vai dar problema. Logo, recomendo ajeitar as importações pro ambiente que estiver utilizando.

Peças não são obrigadas a comer

Cenário exemplo:
red 4 5-> 3 4
blue 1 2 -> 2 3
red 2 5 -> 1 4
era para ser obrigatório selecionar a a peça em red(3, 4) e comer a blue(2, 3)

Segmentation fault ao sair do jogo

Ao sair do jogo no meio da partida, o programa não finaliza. Depois de alguns segundos aparece um erro de segmentation fault no console.

bug_segmentation

Falha na construção do movimento

A movimentação não finaliza a movimentação corretamente:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 3 0 3 0 0 0 0
0 0 0 0 0 0 0 0
0 3 0 3 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0
dado esse caso de teste, ele não elimina todas a peças '3'

Fazer a rules iniciar o jogo a partir de um board em arquivo

Alterar o init da rules para pode criar ela a partir de um arquivo texto com o tabuleiro pronto.
0 espaço vazio
1 peça do jogador do turno atual (Normal)
2 peça do jogador do turno atual (Dama)
3 peça do outro jogador (Normal)
4 peça do outro jogador (Dama)

"Arrependimento" do jogador em uma eliminação múltipla

Em uma eliminação múltipla, caso clique em algum lugar a partir da segunda comida que não seja a casa correspondente à captura, a peça para no meio da eliminação, tendo executado uma jogada que apenas pulou a primeira peça capturada, e essa também não é eliminada.

Reorganizar diretórios e exclusão de arquivos inúteis.

Como dito anteriormente, precisamos reorganizar os diretórios de modo a deixar apenas uma pasta de código (src), excluindo a pasta code, que gera conflito com a biblioteca code nativa do python:
https://docs.python.org/3/library/code.html?highlight=code#module-code

Além disso, existem arquivos aparentemente temporários chamados '_ init _' que fazem com que o debugger do PyCharm não funcione. Se não há utilidade neles, favor excluir antes de commitar o projeto. Caso haja utilidade, favor informar como comentário dessa issue. Abs

Ao selecionar 2 vezes seguidas peças inválidas, jogo trava

Cenário de teste:
Digite a peça a ser jogada: 0 0
--inválido--
Digite a peça a ser jogada: 0 0
Traceback (most recent call last):
File "run.py", line 49, in
File "run.py", line 17, in main
piece_position = Util.string_to_int_tuple(input("Digite a peça a ser jogada: "))
File "**\CheckErS2\src\code\Controller\util.py", line 5, in string_to_int_tuple
tup = tuple(map(int, string.split(" ")))
ValueError: invalid literal for int() with base 10: ''

Criação dos primeiros testes unitários

Na branch tests/model temos os primeiros testes unitários, em particular da classe Board. A classe de testes se encontra em raiz/tests/test_class.py. O motivo de mover os testes do diretório src é simples: TAVA DANDO MERDA! Os imports se bagunçavam por particularidades do python, com problemas em importação relativa e confusão entre packages/módulos. Enfim, da forma atual teremos menos problemas, acredito eu.

Vocês podem rodar os testes com o pytest, estando no diretório raiz:
pytest -q tests/test_class.py

Os testes não estão mockados, e acredito que dessa forma agregam pouco valor ao produto, mas tive pouca falta de entendimento em relação aos mocks, e gostaria de ver com o Murta na sexta(08/06) se ele conseguiria ajudar.

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.