Pull Request - Desenvolvedor Pleno - #40
Open
flipChandler wants to merge 27 commits into
Open
Conversation
douglashiura
suggested changes
Oct 5, 2023
|
|
||
| public Vertex swapCells(Integer currentCellValue) { | ||
| for (Edge adjacent : emptyCell.getAdjacents()) { | ||
| if (adjacent.cellValueIsEqual(currentCellValue)) { |
Contributor
There was a problem hiding this comment.
Boa noite.
O Jogo dos oitos tem um domínio simples, assim se trazer para o código os conceitos do jogo pode solucionar sem esses desvios primitivos.
Att
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Olá, tudo bem?! Meu nome é Felipe, moro em Cotia/SP, eu curto Java demais e me debrucei aqui no PC pra fazer algumas melhorias no código-fonte do jogo dos Oito. O Chat GPT e o @AllenHichard já haviam feito um trabalho sensacional e eu vim aqui humildemente fazer a minha singela contribuição também.
Melhorias
Criei a classe Movement, que implementa a interface Action, desacoplando de Cell;
Criei a classe GameStatus (que implementa a interface Status) desacoplando de Board;
Criei a classe Click (que implementa o padrão Command) desacoplando de Board;
Fiz uma correção ao clicar na célula vazia do jogo, que lançava a exception "NumberFormatException";
Usei o padrão Builder para construir o objeto do frame JogoDosOito de uma forma mais elegante no método main, e coloquei a inicialização do jogo também na classe Application;
Criei o método of para inicializar os objetos, deixando o construtor com argumentos privado. Aí nem vai ter tanto new, new, new espalhado pelo código (acho muito legal esse estilo de método!!);
Criei testes unitários com a library do AssertJ e dei uma ajeitada no pom.xml, centralizando as versões das dependências na tag properties;
Apliquei os princípios do SOLID, Clean Code e do DRY nas classes, métodos e variáveis;
Adicionei a library JTattoo para deixar a UI da jogo um pouco mais amigável;
Adicionei a classe JFrameCustom para personalizar o frame do jogo, por exemplo, ao iniciar a aplicação, o seu frame já está centralizado na tela;
Alguns métodos que tinham paradigmas funcionais, eu os reescrevi com os loops do for-each, conforme o @douglashiura mencionou lá no READ.ME, o grande @AllenHichard fez umas elegâncias com "código muito funcional" (pra mim estavam excelentes!);
Alguns métodos e testes que não estavam sendo utilizados no jogo, eu tomei a liberdade de deletá-los. Havia um lá que era pra pegar os valores do teclado, por exemplo, e o jogo é pra ser jogado pelo mouse.
Bom, agradeço por ter feito esse desafio, aprendi muito de verdade!
Meu contato é: felip3.santos11@gmail.com ☕