Jogo de Xadrez

14 respostas
A

Galera, estou desenvolvendo um jogo de Xadrez, porém estou aprendendo java no tapa, por curiosidade!
O maximo que consegui desenvolver até agora foi um tabuleiro, alguem conseguiria me ajudar me mostrando como devo colocar as peças, pretas e brancas em suas posições iniciais?

Segue em anexo o trabalho realizado até o momento.

Agradeço a ajuda de todos.

14 Respostas

S

OI OI oI :slight_smile: :slight_smile: :slight_smile: :slight_smile: ,
olha eu nunca fiz um jogo de xadrez em java, mas acho que vou entrar nessa fria contigo, e vamos ir analisando juntos e postando aqui neste topico, em questão de jogo em java o que eu ja fix é aquele jogo do galo
x | o |

o | x |

o | o | X
,Logo de noite vou analisar o teu codigo e amanha digo qualquer coisa, mas antecipo ja que a parte dos movimentos das peças será um pouco complicado de implementar, mas nada impossivel para um ser humano :slight_smile: :slight_smile: :slight_smile: :slight_smile:

S

E esqueci de ti dizer assim que acabamos de fazer o jogo, vamos incluir o java RMI para que seja possivel jogar em ambiente de rede, e com assistentes da partida.

A

Po cara muito obrigado.
O problema que realmente nao sei nada de java, tou apanhando, eu preciso por os icones das peças em suas respectivas casas, como que eu poderia fazer isso?

S

Eu tambem sou fraco em java, mas vamos analisar em conjunto fica calmo, se a coisa esquentar ligamos pra SUN :slight_smile: .
vamos ir postando o codigo aqui e analisando

S

Estas a usar que IDE??? os IDE por vezes atrapalham no codigo eles metem coisas estranhas por vezes

A

Tou usando o eclipse que foi o mais indicado para mim.

S

vou postar todo o codigo para discutirmos ( eu ainda não analisei o codigo, mas vi coisas estranhas que não sei )
class Casa

import java.awt.Color;

import java.awt.Graphics;



import javax.swing.JPanel;



/**

 * Classe que representa uma casa do tabuleiro

 *

 */

@SuppressWarnings("serial")

public class Casa extends JPanel {



	private int posX ,posY;

	private boolean isFilled = false;

	

	/**

	 * Construtor que recebe como parâmetro a posicão de X e Y onde

	 * a casa vai ser renderizada e se está ocupada ou não

	 * @param posX

	 * @param posY

	 * @param isFilled

	 */

	public Casa (int posX, int posY, boolean isFilled) {

		this.posX= posX;

		this.posY= posY;

		this.isFilled = isFilled;

	}

	

	/**

	 * Método que desenha a classe, recebendo o gráfico e a cor como

	 * parâmetros.

	 * @param g

	 * @param cor

	 */

	public void desenhaCasa(Graphics g, Color cor) {

		g.setColor(cor);

		g.fillRect(posX,posY, 50, 50);

	}



	/**

	 * Método setter para a variável isFilled

	 * @param isFilled

	 */

	public void setFilled(boolean isFilled)	{

		this.isFilled = isFilled;

	}

	

	/**

	 * Método getter para a variável isFilled

	 * @return

	 */

	public boolean getFilled() {

		return isFilled;

	}

	

}

class Tabuleiro

import java.awt.Color;

import java.awt.Graphics;



import javax.swing.JPanel;



/**

 * Classe que representa o tabuleiro

 *

 */

@SuppressWarnings("serial")

public class Tabuleiro extends JPanel {

	

	private Casa[][] tabuleiro = new Casa[8][8];

	private static Color corCasa = Color.BLACK;

	

	public void paint(Graphics g) {

		for (int i=0; i<8; i++) {

			for (int j=0; j<8; j++)	{

				tabuleiro[i][j] = new Casa(i*50,j*50,false);

				tabuleiro[i][j].desenhaCasa(g, corCasa);

				inverteCor(corCasa);

			}

			inverteCor(corCasa);

		}

	}

	

	/**

	 * Método que varia a cor entre preto e branco para desenhar a casa

	 * @param cor

	 */

	public void inverteCor(Color cor) {

		if (cor == Color.WHITE)

			corCasa = Color.BLACK;

		else

			corCasa = Color.WHITE;

	}

	

}

class Xadrez

import java.awt.Color;



import javax.swing.JFrame;



public class Xadrez {

	

	static JFrame frame = new JFrame("Xadrez");

	static Tabuleiro tabuleiro = new Tabuleiro();



	public static void main(String[] args) {

		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



		frame.setSize(416,438);

		frame.setVisible(true);

		

		tabuleiro.setBackground(Color.BLACK);

		

		frame.getContentPane().add(tabuleiro);		

	}

	

}
S

@SuppressWarnings(“serial”)
esta linha que esta acima eu não sei para que serve??

A

Sem ela estava dando um warning, eu pesquisei e pus ela, ai saiu o warning, mas sem ela o codigo funciona mt bem.

S

E que tal se as Casas fossem umas Labels Pretas e brancas, e os jogadores fossem outra labels com uma imagem de fundo que ficam a andar por cima das labels que representam as casas???

A

Mas ai eu nao estaria utilizando o java 2d neh?
Eu queria fazer uma coisa mais na unha mesmo. Pra aprender.

S

È claro que não é java 3D nem 2D, eu tambem não mexo com java 2D e 3D, uma label é uma etiqueta onde podemos inserir texto e imagem normal 1D

A

Xii cara, me enrolou agora hahaha Realmente nao sei como seria isso que voce esta dizendo

A

Alguem consegue me ajudar?
Estou apenas tentando colocar umas peças nas casas iniciais, mas realmente nao faço a menor ideia de como se faz.
Tenho um modelo de peças que estou pondo em anexo.

Criado 8 de junho de 2010
Ultima resposta 9 de jun. de 2010
Respostas 14
Participantes 2