GithubHelp home page GithubHelp logo

brain-chess's Introduction

Bem-vindo ao Brain Chess

Olá, seja muito bem vindo ao Brain Chess (quebrei meu brain pra pensar num nome melhor e ficou esse mesmo por ora).

Jogue aqui e veja como está ficando.

Motivação

A motivação do Brain Chess é estudar programação de uma forma geral, então pensando nisso, peguei dois temas que gosto muito que é Xadrez e desenvolvimento de games, porque não há nada melhor para nos manter motivados nos estudos do que algo que gostamos de fazer.

Espero que esse material também possa ser útil para outras pessoas que também querem estudar programação ou desenvolver seu jogo. A ideia de usar somente Javascript, HTML e CSS (e um pouquinho do p5js) é a de facilitar o acesso e execução, basta um browser e já dá pra ver a coisa toda acontecer. = )

Desenvolvimento de Games

Não sou um desenvolvedor de games, mas tenho muita curiosidade sobre esse universo e é um tema muito divertido de estudar. Além de ajudar a nos manter motivados nos estudos, na minha singela opinião, os itens abaixo são ótimas skills para se desenvolver ao criar um jogo, seja ele como for.

  1. Estudar Orientação à Objetos - Esse tema é um dos que mais gosto ao desenvolver um jogo. Uma OO pensada, bem desenhada, pode ajudar muito a sua vida no decorrer do desenvolvimento, te ajuda na manutenção do seu código, a identificar as responsabilidades que cada parte do seu código tem, se não estamos misturando coisas demais, e o contrário também vai ocorrer, se o desenho do seu software não estiver legal, fazer um jogo faz você sentir na prática essa "dor" e a necessidade de dar uma passo atrás e repensar sua organização de código.
  2. Estudar uma linguagem nova - É uma ótima oportunidade de aprender novas linguagens e colocar mais uma ferramenta no seu cinto de utilidades como programador.
  3. Estudar algoritmos e resolver problemas - Você vai ver a imensidão de pequenos probleminhas que surgem no desenvolvimento de um game e como ele te auxilia a melhorar sua capacidade de resolvê-los.
  4. Aprender a programar dentro de um loop infinito. Não conheço muitas formas de fazer um jogo, mas as que conheço geralmente possuem um loop infinito e a interação do usuário, faz com que novos gatilhos de código sejam executados, novos estados associados, comportamentos disparados e, se você não está acostumado, isso pode te causar um certo estranhamento no começo e te fazer não entender como as coisas estão acontecendo.

ToDO

Lista de desejos de coisas que ainda quero implementar no jogo:

  • Finalizar esse README adicionando algumas explicações básicas de como o jogo funciona se for útil para o estudo de alguém
  • Até agora, o jogo permite movimentação das peças pelo teclado, clicando ou arrastando as peças, no entanto deixa mover as peças para qualquer casa, sem respeitar as regras do xadrex. Próximo passo quero implementar algo como uma engine do jogo que valida a movimentação de acordo com cada peça e suas especificidades.
  • Após a movimentação de peças estar Ok, implementar a captura de peças.
  • Seria legal implementar o relógio para cada player também.
  • Acrescentar testes unitários.

brain-chess's People

Contributors

rafa-ribeiro avatar

Stargazers

Lívia Mendes avatar

Watchers

 avatar

brain-chess's Issues

Permitir jogo somente com o teclado

Seria uma feature interessante poder mover as peças no tabuleiro somente com o teclado.
Caso de uso:

Se o jogo está ativo e o jogador aperta B2, a peça abaixo fica selecionada:

Captura de Tela 2021-01-29 às 15 31 49

O jogador aperta C3 e o quadrado C3 fica selecionado piscando.

Captura de Tela 2021-01-29 às 15 31 49

Jogador aperta enter e confirma a jogada.

Se em qualquer momento for apertada uma sequência inválida a jogada é cancelada.

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.