Giter Site home page Giter Site logo

chess_java's People

Contributors

chrisfsampaio avatar

Watchers

 avatar  avatar

chess_java's Issues

comparações de movimento valido - classe Tabuleiro

  • (MUITO GRAVE) Quando Tabuleiro tenta realizar a movimentação de uma peça, deveria apenas "perguntar" para a Peça em questão se tal
    movimento é valido para ela. Tal Peça deveria ser capaz de informar ao Tabuleiro se o movimento é valido ou não.
    Tabuleiro JAMAIS deveria ter que verificar qual o tipo de peça sendo movimentada, em nenhuma situação.
    Foi uma boa ideia passar, como parâmetro de validaMovimento, se a jogada terminará com uma captura. Mas essa informação
    poderia ter sido usada de forma mais efetiva:
    Em tabuleiro:
    1. Verifica se há peça adversária na posição final. Se sim, atribui variável captura = true
    2. Chama valida movimento passando captura
    Em (cada) peça:
    1. Verifica se a peça em questão pode chegar no destino
    2. Se captura==true, verifica se, nesse tipo de movimento, pode haver captura
    (este passo seria para tratar o caso especial do Peão, por exemplo)

metodo setCasa receber apenas peça (pra mim esta certo do jeito que esta)

?# - (MENOR) Tabuleiro: setCasa deveria receber apenas uma peça como parâmetro (a Peça já possui suas coordenadas).

    #?# enviei email pra ele pois nao entendi se o setCasa tem que receber APENAS UM PARAMETRO ou ele entendeu errado, achando que estamos enviando a Peca e sua posicao.

-----Reposta do professor:
        É isso mesmo. Fica mais organizado ajustar as coordenadas de uma peça e depois passa-la para o setCasa. Internamente, o método pega as coordenadas da peça e a coloca na posição correta do tabuleiro. A forma como você fez não está errada (veja que itens MENORES, contam muito pouco - só um grande número deles alteraria a nota), mas possui um problema conceitual: ao passar uma peça e um par de coordenadas para o setCasa, a peça pode ter suas coordenadas alteradas como um efeito colateral. Isso não é muito indicado, pois viola o conceito de separação de responsabilidades.

Mas como eu disse, itens MENORES são quase como sugestões (mas uma sugestão FORTE :) )
Se ainda houver dúvidas, podemos conversar na próxima aula, ok?

Tabuleiro

1 - Mudar o construtor do Tabuleiro pra usar o novo metodo getPosicao.

2 - Mudar todos os métodos do Tabuleiro que usam x/y para usar a classe Posicao.

4 - Criar classe Movimento.java com as seguintes especificações:
I - Construtor Movimento(boolean validado, String mensagem).
II - Getters getValidado, getMensagem.

3 - Criar método public Movimento mover(Posicao origem, Posicao destino).

4 - Implementar método mover fazendo com ele siga os seguintes requerimentos:
I - Verifica se existe peça na posição de origem.
II - Valida se a peça de destino é uma peça do adversário ou uma posição vazia.
III - Verifica se a peça de origem pode fazer o movimento desejado (utilize o método setCoord criado na classe Peca).
IV - Crie uma instancia da classe Movimento com as informações validadas nos passos anteriores.
V - Se o movimento for validado, mova a peça de destino para origem.
VI - Retorne o objeto Movimento criado.

getSimbolo(). Nao entendi oque quis dizer, ate tentei fazer.

  • (DICA) O método getSimbolo de cada Peça está retornando um valor fixo. Uma abordagem mais conveniente (e OO) seria criar um atributo
    "simbolo" em Peca, e fazer seu construtor receber um símbolo como parâmetro. Então, o construtor de cada peça específica, passa seu
    símbolo próprio, quando chama super.

formatação do código (?)

- (DETALHE) O código não está completamente formatado (identações, principalmente)

    ### Eu identei tudo, o que sera que ele quis dizer com completamente formatado ?

missing: pecaNoCaminho

  • (MUITO GRAVE) Como vocês mesmos já apontaram, o jogo não valida se há obstáculos no caminho da peça.

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.