Jump to content

Xadrez em Java


powerboy
 Share

Recommended Posts

Tenho um trabalho da faculdade para fazer e nao sei como contrui-lo.

O enunciado é o seguinte: Faça o programa Xadrez que, no contexto de um tabuleiro de xadrez, posicione de forma aleatória duas torres e dois bispos, mas de forma a não haver ataques entre as peças. Assim para cada peça guarde as suas coordenadas x e y e compare se há ataque com as peças já processadas. Em caso de ataque deve gerar novas coordenadas e voltar a testar, até não haver qualquer ataque. No final deve-se mostrar o tabuleiro em que cada torre é visualizada com um ‘T’ e cada bispo com um ‘B’, cada posição que não sofra qualquer ataque deve conter um ‘o’, cada posição com um só ataque deve conter um ‘-‘ e cada posição com pelo menos dois ataques deve conter um ‘+’. Para controlar os ataques deve utilizar um array bidimensional de 8 por 8 de char. O programa deverá gerar e mostrar uma nova configuração válida quando, e sempre que, se premir a tecla de Enter.

Alguem me pode ajudar? Obrigado!

Link to comment
Share on other sites

a dúvida encontrasse onde ?

O que ja tenho é isto!

public class P05Xadrez {
public static final int ALTURA = 8;
public static final int LARGURA = 8;

public static final char TORRE = 'T';
public static final char BISPO = 'B';

public static final char SEMATAQUE = 'o';
public static final char UMATAQUE = '-';
public static final char MAISDEDOISATAQUES = '+';

public static void output(char board[][]) {
// separador
for (char j = 0; j < board.length; j++) {
System.out.print("|");
}
System.out.println("|");

// colunas
for (char i = 0; i < board.length; i++) {
// linhas
for (char j = 0; j < board.length; j++) {
System.out.print("|" + board[i][j]);
}
System.out.println("|");

// separador
for (char j = 0; j < board.length; j++) {
System.out.print("|");
}

System.out.println("|");
}
}

public static void putTower(char board[][]) {
char x = 0, y = 0;

// escolher uma posição qualquer dentro do tabuleiro

// marcar as linhas e colunas com o caracter correspondente
// ciclo ...

// marcar a posição da torre
board[x][y] = TORRE;
}

public static void putBispo(char board[][]) {
char x = 0, y = 0;

// escolher uma posição qualquer dentro do tabuleiro que não seja nem na
// linha nem na coluna da torre

// marcar as diagonais da posição escolhida com os caracteres correspondentes
// ciclo ...

// marcar a posição do bispo
board[x][y] = BISPO;
}

public static void solution(char board[][]) {
clearBoard(board);

putTower(board);
putBispo(board);

output(board);
}


public static void clearBoard(char board[][]) {
for (char i = 0; i < board.length; i++) {
for (char j = 0; j < board.length; j++) {
board[i][j] = ' ';
}
}
}


public static void main(String[] args) {
char board[][] = new char[ALTURA][LARGURA];

do {
solution();

// ler o conteúdo do teclado
}
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.