Este é um projeto para a disciplina Programação Orientada a Objetos (MATA-55) — um jogo de Xadrez, com modo local e online, criado em Python 3 puro, utilizando a biblioteca pyglet, por recomendação do professor.
Para executar o jogo, é necessário ter instalado o Python 3.9, ou superior.
Instale as suas dependências utilizando o comando abaixo:
pip install -r requirements.txt
Para jogar, você pode utilizar o mouse, selecionando e movendo uma peça, clicando com o Botão Esquerdo. Também é possível jogar com o teclado, utilizando o sistema de notação algébrica de xadrez. Para tal, escolha primeiramente a coluna e, logo em seguida, a linha da peça a ser movida. Faça o mesmo para a seleção do destino. Após isso, aperte ENTER ou SPACE para finalizar o movimento.
Outras teclas úteis são: F12 para capturas de tela e ESC para voltar ao menu.
Observação: a captura de tela será salva no diretório data/screenshots
.
Para jogar online, abra a tela de configurações e altere, se necessário, o seu endereço IP e o número PORT.
É necessário que um dos jogadores seja o host da partida. Supondo que você seja o host, envie o seu endereço IP e número PORT ao outro jogador. Após
isso, clique no botão "Play as Host". Posteriormente, o outro jogador deverá clicar no botão "Play as Client". Dessa forma, a conexão estará estabelecida e a partida iniciará automaticamente.
Temática de Derrota: Ao ser derrotado em uma partida online, o tema do jogo muda, voltando ao normal somente depois que conseguir uma vitória, no modo local ou online
Todas as partidas, modo local ou online, são salvas automaticamente após o término do jogo, isto é: se não houver abandono durante o jogo. Para conferir o replay de uma partida, acesse a tela de histórico e navegue pela lista, buscando o jogo que deseja. Após isso, inicie o replay.
Através do controlador, localizado abaixo do placar do jogo, você poderá retroceder, avançar, pausar ou prosseguir com o jogo. No modo replay, não é possível alterar as jogadas dinamicamente.
O jogo conta com um sistema de conquistas, no qual existem determinados eventos, espalhados pelo programa, que liberam conquistas para o jogador. Essas conquistas podem ser visualizadas novamente na tela de conquistas. Além disso, o jogo também conta com Easter Eggs. Em outras palavras, boa caçada!!
Preste atenção ao título da janela em determinadas telas. Elas podem conter informações úteis como, por exemplo: na tela de histórico, o título da janela informa o índice do jogo em questão e quantos jogos foram registrados.
Com o objetivo de proteger a integridade do jogo, o tráfego dos dados, tal como o arquivo de configurações, é protegido utilizando o pacote crpytography. Talvez essa não seja a melhor solução para a proteção de dados, mas é suficiente para proteger o jogo de cheats :)
O jogo atualmente conta com algumas opções do configurações, descritas abaixo:
- Resolução de Tela
- Volume de Efeitos Sonoros
- Volume de Músicas
- Endereço IP e Número PORT
Quando o seu rei está em xeque, somente jogadas que o farão sair do xeque estarão liberadas.
Demos atenção ao detalhe de cada peça e ação durante o jogo possuir seu próprio efeito sonoro.
Caso algum erro ocorra durante o jogo, o mesmo será salvo no arquivo log.txt
. Nessa situação, por gentileza, nos encaminhe o arquivo para que possamos solucionar o problema e melhorar o jogo.