Jogo de Xadrez

47 respostas
I

Olá pessoal,

Fiz um Jogo de Xadrez em Java e gostaria de compartilhar com vocês a versão beta, ainda falta programar algumas regras do jogo e pode haver algum bug.

Dentre suas vantagens, posso destacar:

Multiplayer: jogue contra um amigo ou contra seu computador;

Alta Resolução: desenhado totalmente em Java 2D, garantindo flexibilidade, isto é:
[list]Auto Ajuste: o jogo ajusta-se a resolução do seu monitor, independente do tamanho deste;[/list]
[list]Milhares de Cores: entre as cores sólidas, texturas, dégradés e transparências disponíveis;[/list]
Tamanho em Disco: como citado anteriormente, devido os gráficos serem desenhados com Java 2D (sem imagens externas em anexo), o executável ocupa menos de 20 KB, podendo ser executado até mesmo em um pendrive.

Como jogar:

Use as teclas direcionais do teclado ou o numpad para movimentar-se no tabuleiro e a tecla enter para correr/capturar as peças.

Comentem: tiro dúvidas, aceito sugestões, informe um bug, etc.

Interessados no código fonte aguardem. Em breve, publicarei um site mostrando passo a passo com desenvolver este e outros jogos.

Divirtam-se.

47 Respostas

D

ooooooooooooooooooooooooooooooorrrraaa aaiiii siimmm cara… ficou muito bacana, claro que tem coisas a melhorar mas achei da hora voce fazer um tutorial de como fazermos o jogo… parabens pela iniciativa. Estou desenvolvendo também algumas coisas, mas é mais pra ajudar o pessoal iniciante(pois nao sou nada avançado kkk)

D

dei Check Mate com 1 peão…

como ta funcionando a I.A do PC ?

I

Obrigado.

Sim, aos poucos/horas vagas, irei rever algumas coisas.

Obrigado, também em horas vagas.

Este também é exatamente o meu caso, sou iniciante.

I

douglaskd:
dei Check Mate com 1 peão…

como ta funcionando a I.A do PC ?

Simplesmente Random. :smiley:

J

InicianteJavaHenrique:
douglaskd:
dei Check Mate com 1 peão…

como ta funcionando a I.A do PC ?

Simplesmente Random. :smiley:

Perfeito. O lance é fazer uma coisa de cada vez. Primeiro a parte gráfica, a movimentação, a coisa bonitinha. Depois a IA.

Parabéns.

D

parabens tbm,

o lancei é ir agregando coisas e melhorando…vai te dar muito conhecimento…

espero poder começar um projeto assim quando tiver um tempo…

se quizer dar uma incrementada depois na I.A da uma pesquisada sobre algoritmo Minimax…é extremamente complexo…eu não entendi ele ainda…

I

jaboot:
InicianteJavaHenrique:
douglaskd:
dei Check Mate com 1 peão…

como ta funcionando a I.A do PC ?

Simplesmente Random. :smiley:

Perfeito. O lance é fazer uma coisa de cada vez. Primeiro a parte gráfica, a movimentação, a coisa bonitinha. Depois a IA.

Parabéns.

Sim. Obrigado. :smiley:

I

douglaskd:
parabens tbm,

o lancei é ir agregando coisas e melhorando…vai te dar muito conhecimento…

espero poder começar um projeto assim quando tiver um tempo…

se quizer dar uma incrementada depois na I.A da uma pesquisada sobre algoritmo Minimax…é extremamente complexo…eu não entendi ele ainda…

Obrigado pela dica, vou pesquisar sobre este algoritmo Minimax :smiley:

R

eai cara vc leu minha msg mp?

R

Esse algoritmo minimax eh realmente legal.
Na faculdade usei ele pra um joguinho em C que fiz na disciplina de IA…
O joguinho conseguiu ganhar de várias pessoas e meu professor tentou tentou mas não conseguiu ganhar (ficou no empate as vezes q tentou heheh)
Vale a pena estuda-lo…

I

Sim. Já enviei vê se funciona.

I

Rendrys:
Esse algoritmo minimax eh realmente legal.
Na faculdade usei ele pra um joguinho em C que fiz na disciplina de IA…
O joguinho conseguiu ganhar de várias pessoas e meu professor tentou tentou mas não conseguiu ganhar (ficou no empate as vezes q tentou heheh)
Vale a pena estuda-lo…

Curiosidade: que joguinho era :?:

R

Nunca consigo lembrar um nome certinho pra esse jogo… mas é um que você vai derrubando umas bolinhas em colunas e tem que fechar 3 ou 4 bolinhas em uma mesma direção (horizontal, vertical ou diagonal), cada rodada 1 pessoa joga sua bolinha e quem fechar a sequencia primeiro ganha. Tipo isso :lol:
Ai no caso eu fazia o “computador” prever as possiveis jogadas do outro jogador, ja classificando elas por nivel de perigo, e ai o computador fazia uma especie de balança pra pensar, algo como: “o que é melhor, fazer uma jogada defensiva e bloquear a linha de raciocinio do jogador ou de repente fazer uma jogada que me favoreça pra fechar o jogo?”… em termos gerais era isso hehehe

G

ficou massa.

a interface.

pq IA nem existe.

vc dá um cheque no rei e ele movimenta outra peça deixando o rei em cheque.
ou seja, IA seria pra decidir melhor opção de jogada. q é mt mais complexo q simplesmente validar um movimento.

I

Rendrys:
Nunca consigo lembrar um nome certinho pra esse jogo… mas é um que você vai derrubando umas bolinhas em colunas e tem que fechar 3 ou 4 bolinhas em uma mesma direção (horizontal, vertical ou diagonal), cada rodada 1 pessoa joga sua bolinha e quem fechar a sequencia primeiro ganha. Tipo isso :lol:
Ai no caso eu fazia o “computador” prever as possiveis jogadas do outro jogador, ja classificando elas por nivel de perigo, e ai o computador fazia uma especie de balança pra pensar, algo como: “o que é melhor, fazer uma jogada defensiva e bloquear a linha de raciocinio do jogador ou de repente fazer uma jogada que me favoreça pra fechar o jogo?”… em termos gerais era isso hehehe

Muito legal :smiley: com algoritmo Minimax :!: :?: Vou correr atrás disto.

I

GilsonNunes:
ficou massa.

a interface.

pq IA nem existe.

vc dá um cheque no rei e ele movimenta outra peça deixando o rei em cheque.
ou seja, IA seria pra decidir melhor opção de jogada. q é mt mais complexo q simplesmente validar um movimento.

Sim. ela existe, mas, é o nível very easy. :smiley:

V

Dá uma lida nesse tutorial:
http://elemarjr.net/2010/12/30/escrevendo-um-engine-para-xadrez-parte-1-bitboards/
http://elemarjr.net/2010/12/30/escrevendo-um-engine-para-xadrez-parte-2-a-importncia-do-pr-processamento/
http://elemarjr.net/2011/01/02/escrevendo-um-engine-para-xadrez-parte-3-o-movimento-do-cavalo/
http://elemarjr.net/2011/01/04/escrevendo-um-engine-para-xadrez-parte-4-tempo-para-refactoring/
http://elemarjr.net/2011/01/07/escrevendo-um-engine-para-xadrez-parte-5-o-movimento-do-rei/
http://elemarjr.net/2011/01/07/escrevendo-um-engine-para-xadrez-parte-6-o-movimento-dos-pees/
http://elemarjr.net/2011/01/11/escrevendo-um-engine-para-xadrez-parte-7-o-movimento-da-torre/
http://elemarjr.net/2011/01/12/escrevendo-uma-engine-para-xadrez-parte-8-bispo-e-dama/
http://elemarjr.net/2011/01/17/escrevendo-um-engine-para-xadrez-parte-9-refactoring-e-redesign/
http://elemarjr.net/2011/01/23/escrevendo-um-engine-para-xadrez-parte-10-pieceset-side-attackmoves-rays-e-otimizaes/
http://elemarjr.net/2011/01/27/escrevendo-um-engine-para-xadrez-parte-11-mais-bitboards-xeques-e-escapadas/
http://elemarjr.net/2011/05/17/escrevendo-um-engine-para-xadrez-parte-12-a-classe-board/
http://elemarjr.net/2011/05/18/escrevendo-um-engine-para-xadrez-parte-13-refactoring-e-melhorias-em-board/
http://elemarjr.net/2011/11/19/escrevendo-um-engine-para-xadrez-parte-14-castling-roque-rules/

I

Obrigado pelos links.

Estou fazendo meu jogo de xadrez sem usar nenhum tutorial/código existente, para não me influenciar, o que foi uma grande vantagem, pois, assim criando a partir do zero obtive (e ainda terei) mais conhecimento.

Futuramente, após eu concluir meu jogo, verei estes links. :smiley:

S

Gosteeei, caraa, massa!

Mas o nível ta muito easy! :smiley:

I

Sleipbr:
Gosteeei, caraa, massa!

Mas o nível ta muito easy! :smiley:

Obrigado :smiley:

Realmente a I.A deixa a desejar, mas estou aprendendo sobre algoritmo Minimax e vou melhorar.

:thumbup:

J

InicianteJavaHenrique:
Sleipbr:
Gosteeei, caraa, massa!

Mas o nível ta muito easy! :smiley:

Obrigado :smiley:

Realmente a I.A deixa a desejar, mas estou aprendendo sobre algoritmo Minimax e vou melhorar.

:thumbup:


Com certeza aperfeiçoando a IA ficará muito bom!!!
Os gráficos ficaram EXCELENTES!

Parabéns

I

jmmenezes:

Com certeza aperfeiçoando a IA ficará muito bom!!!
Os gráficos ficaram EXCELENTES!
Parabéns

Obrigado.

:thumbup:

R

Cara ficou muito bom o jogo, graficos e tudo mais, só acho que deveria haver uma validação dos movimentos para o caso de check ou check-mate pois do jeito que esta, o rei é capturado como uma peça comum e movimenta qualquer peça em caso de check e também um menu com opção de novo jogo e escolha do lado do tabuleiro pelo jogador.
Tirando essa breve observação ficou muito show espero poder jogar uma versão 2.0 em breve, quem sabe usando minimax ou algum outro tipo de I.A. além é claro de um ranking de recordes ia ficar bem legal o conhecimento seria enorme pra quem esta fazendo do zero.
Só uma pergunta: “No futuro você pretende diponibilizar parte do código e fazer tutoriais ou é só por diversão este projeto ?”. Adoraria ver como esta a codificação e a lógica do mesmo.

Boa sorte com a sua investida e obrigado pela atenção…

Att.: Raytek.

I

Raytek:
Cara ficou muito bom o jogo, graficos e tudo mais, só acho que deveria haver uma validação dos movimentos para o caso de check ou check-mate pois do jeito que esta, o rei é capturado como uma peça comum e movimenta qualquer peça em caso de check e também um menu com opção de novo jogo e escolha do lado do tabuleiro pelo jogador.
Tirando essa breve observação ficou muito show espero poder jogar uma versão 2.0 em breve, quem sabe usando minimax ou algum outro tipo de I.A. além é claro de um ranking de recordes ia ficar bem legal o conhecimento seria enorme pra quem esta fazendo do zero.

Obrigado. As dicas foram anotadas. :smiley:

É por diversão. Mas, no futuro (exatamente após terminar de implementar suas dicas e as do pessoal) irei fazer tutoriais e disponibilizar todo o código.

:thumbup:

J

Cara, curti bastante o seu jogo!

Recentemente fiz um jogo de Campo Minado em C… Agora to partindo pra algum em Java… Estou pensando em Damas ou Xadrez!

I

Obrigado.

Legal. O executável está disponível para download :?:

Recentemente eu estava fazendo (tentando) um jogo de corrida, porém, começou a complicar e eu pretendo retomá-lo depois. Mas, por enquanto, vou ficar com os jogos de tabuleiro.

O jogo de damas, assim como o de xadrez e campo minado são muito interessantes.

Boa sorte no desenvolvimento e poste o resultado depois. :smiley:

:thumbup:

J

InicianteJavaHenrique:

Legal. O executável está disponível para download :?:

Não, mas posso disponibilizar!

I

jeanmalvessi:
InicianteJavaHenrique:

Legal. O executável está disponível para download :?:

Não, mas posso disponibilizar!

Sugestão: Então, quando estiver disponível compartilha aqui no GUJ. :smiley:

:thumbup:

M

Pelo que andei vendo, faltou as seguintes regras, Roque Grande, Roque Pequeno e EnPassant

I

Sim, estas regras estão faltando.

Sobre Roque grande e pequeno, fiz uma pesquisa depois que você citou, pois até então eu só conhecia o Roque (que no caso era o Roque pequeno).

Deu pra notar que não sou um expert em jogo de xadrez :smiley:

:thumbup:

R

legal ele aceita xeque pastor.

sou o lord of the chess set.

confesso que tentei fazer um jogo, mas parei o projeto.

depois posso mandar o meu início.

acho que podes usar a mouse listener, já veio melhorar a jogabilidade.

são labels ou botões os quadrados…

conhece esta biblioteca mouse listenet… ? é bem simples… jogar com o mouse é melhor.

e ficou pequeno hein, achei até que era vírus… hehe

I

São Rectangle2D o tabuleiro e GeneralPath as peças da API Java 2D.

Sim, conheço. Boa ideia, está anotado, nas próximas versões irei implementar.

O tamanho reduzido se deve justamente por não utilizar imagens externas e sim Java 2D somente.

Obrigado. Também sou fã dos seus jogos, você tem vários hospedados aqui no GUJ :smiley:

:thumbup:

R

legal mesmo. vou mandar até o projeto que eu havia iniciado. é com botões.
tava desenvolvendo uma lógica pessoal, mas por enquanto parei o estudo. pretendo retomar…
o peão esquerdo da parte de cima, já tinha uma certa movimentação, pode ver que ele anda. a única peça que anda, neste ‘projeto de jogo’.
as imagens é fácil melhorar depois. nao me preocupei muito com isto ainda, as da ver as peças.

java iniciantejavahenrique (e demais também )

Que outros jogos vc tem hospedados no guj ? pode mostrar ou indicar os links ou nomes?
viu o do snake game, recente aqui. achei super legal… também já vi jogo da velha que achei show…

estou acompanhando este do truco, talvez goste :

tenho um tcc com 7 jogos java,
posso mandar por email, enviem o email para mim que eu mando, [email removido]
e dem idéias e sugestões, ou impressões de jogabilidade, etc.

tem forca,poker,megasena,fizzbuzz,tabuleiro 37, memoria e bingo.
nos 7 jogos.

nao mando src, pois não cabe no anexo, talvez em outra mensagem… (se interessar, peçam, mas nao está pronto )
aguardo coments tb.

mas neste seu jogo, vc tem que partir para o tcp, ip, pois a movimentação está boa… então juntando usuários que jogam de verdade,
a inteligencia de resposta é desnecessária.

e para web, estes jar podem facilmente serem transformados em applet por exemplo. alguém manja isto? já fiz, o main vira o run e muda pouca coisa, ao invés de jframe, japplet, etc. tem uma história de jnlp, também que o netbeans gera para ‘launch’, que roda o jar direto na web, sem ser applet. algum craque nisto? é um caminho também.

R

agora que vi o jogo do truco e do xadrez sao da mesma pessoa. o iniciantehenrique, mas tá valendo. e já te mandei o trabalho com os jogos. vc deixou email no link do truco.

T

desculpe minha ignorancia, mas como consigo executar o jogo, baixei e apenas dando 2 clicks nao roda fala q ta faltando a classe main

I

raghy:
legal mesmo. vou mandar até o projeto que eu havia iniciado. é com botões.
tava desenvolvendo uma lógica pessoal, mas por enquanto parei o estudo. pretendo retomar…
o peão esquerdo da parte de cima, já tinha uma certa movimentação, pode ver que ele anda. a única peça que anda, neste ‘projeto de jogo’.
as imagens é fácil melhorar depois. nao me preocupei muito com isto ainda, as da ver as peças.

Está bem no começo, mas achei legal :smiley:

raghy:
java iniciantejavahenrique (e demais também )

Que outros jogos vc tem hospedados no guj ? pode mostrar ou indicar os links ou nomes?

Hospedado no GUJ só tenho este. Tenho outros em desenvolvimento (mas, estão parados no momento): PacMan e Super Mário (ambos J2ME) Jogo de Xadrez (Android) e de Corrida (J2SE).

raghy:
tenho um tcc com 7 jogos java,
posso mandar por email, enviem o email para mim que eu mando.
e dem idéias e sugestões, ou impressões de jogabilidade, etc.

tem forca,poker,megasena,fizzbuzz,tabuleiro 37, memoria e bingo.
nos 7 jogos.

É de um TCC que você já apresentou ou que está desenvolvendo :?:

Anotado a ideia, futuramente, terá a versão multiplayer.

Já vi algumas coisas do tipo, mas não manjo muito :wink:

:thumbup:

I

Não, o jogo de truco não é meu, só o de xadrez :smiley:

Vou te enviar um e-mail agora.

:thumbup:

I

O meu ou o do raghy :?:

:thumbup:

T

o seu mesmo

I

:shock: Funciona aqui no meu pc e em outros que eu testei e também o pessoal que baixou ninguém teve problema. :shock:

Para executar, só basta 2 cliques.

:idea: Seu JRE está funcionando direito :?: Tente executar outro .jar ou baixei novamente o meu.

:thumbup:

T

Executo jar num boa, principalmente os meus, nao sei pq ta dando erro

I

:shock: Também não sei o que pode ser :wink:

Seu Sistema Operacional é Windows :?:

:thumbup:

T

Sim w7 64b

I

Meu também, então não sei o que acontece :wink: Mas, obrigado por ter avisado, vou gerar outro .jar depois.

:thumbup:

P

Meu também, então não sei o que acontece :wink: Mas, obrigado por ter avisado, vou gerar outro .jar depois.

:thumbup:

Ainda tem o código fonte deste jogo ? Gostaria de analisá-lo para modificar , como uma espécie de exercício .

A

Opa, gostaria do fonte do jogo para um trabalho didático e algumas modificações. Você se importa de compartilhar e disponbilizá-lo?
Abs!

A

Como posso fazer download deste jogo? Agradeço a quem responder

Criado 11 de abril de 2012
Ultima resposta 3 de fev. de 2016
Respostas 47
Participantes 18