• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Fest

Problema com constructor para multiarray

4 mensagens neste tópico

olá eu sou novo aqui e em java (comecei neste início de ano) bem como a qualquer tipo de programação. O meu problema tem haver com um trabalho que apesar e não ser para minha avaliação supostamente segundo o meu professor vai ajudar para avaliações futuras, por isso se não quiserem ajudar pk devia ser eu por mim a fazer eu percebo e peço que não me atirem isso à cara porque já é mt mau eu andar muito tempo (vai fazer hoje 3 dias) que tou a tentar fazer isto e não consigo.

O meu professor deu nos duas classes;

1)

public class BoardTester {

public static void main(String[] args) {

	char[][] config = {
			{'~','~','2','2','~'},
			{'~','1','~','~','~'},
			{'~','~','3','~','2'},
			{'~','~','3','~','2'}
	};		
	Board board1 = new Board(config); // a)

	System.out.println(board1); // b)

	System.out.println();		


	char[][] state = {
			{'.','.','.','.','.','.','.','.','.','.'},
			{'.','.','.','.','.','.','.','.','.','.'},
			{'.','~','~','~','.','~','.','.','.','.'},
			{'.','.','.','.','.','X','.','.','.','.'},
			{'.','.','.','X','.','.','.','.','.','.'},
			{'.','.','.','X','.','.','.','.','.','.'},
			{'.','.','.','X','.','.','.','.','.','.'},
			{'.','.','.','.','.','.','.','~','.','.'},
			{'.','.','.','.','.','.','.','.','.','.'},
			{'.','.','.','.','.','.','.','.','.','X'}
	};
	Board board2 = new Board(state); // a)

	System.out.println(board2.getBoardText()); // c)					
}
}
 

2)

import org.junit.runner.RunWith;

import pt.iscte.dcti.ip.tests.p0.BoardTest;

@RunWith(BoardTest.class)

public class Board {

}

O objectivo será:

a) A classe tem que definir um método construtor public Board(char[][] board), onde a matriz board contém o estado do tabuleiro. O primeiro índice da matriz corresponde às linhas do tabuleiro, enquanto o segundo índice da matriz corresponde às colunas do tabuleiro. Por exemplo, o seguinte pedaço de código deverá construir um tabuleiro com 7 linhas e 10 colunas:

char[][] boardContent = new char[7][10];

Board board = new Board(boardContent);

b) A classe tem que definir um método public String toString() , o qual devolve uma String que representa textualmente o conteúdo do tabuleiro de acordo com a Figura 3 do enunciado do TF. Para um tabuleiro de 7 x 10 o método devolveria, por exemplo:

~ X ~ . . ~ . . . .

. . . . . X . . . .

. . . . . X . . . .

. . . . . . ~ . . .

. . . . . . X . . .

. . . . . . ~ . . .

. . . . . . . . . .

Nota: Para incluir uma mudança de linha numa String concatene um separador (em Windows será igual a"\r\n", em Linux apenas "\n"), como no exemplo seguinte:

String separator = System.getProperty("line.separator");

String s = ". . ." + separator + ". X ." + separator + ". . ." ;

System.out.println(s);

c) A classe tem que definir um método public String getBoardText(), que devolve uma String que representa textualmente o tabuleiro de acordo com a interface apresentada na Figura 1 do enunciado do TF. Por exemplo, para o tabuleiro apresentado no ponto anterior, o método devolveria:

1 2 3 4 5 6 7 8 9 10

A ~ X ~ . . ~ . . . .

B . . . . . X . . . .

C . . . . . X . . . .

D . . . . . . ~ . . .

E . . . . . . X . . .

F . . . . . . ~ . . .

G . . . . . . . . . .

Em conjunto com o enunciado é fornecido um teste (BoardTester.java) que deve usar para verificar se o seu programa está a funcionar correctamente. Pode ainda, com a classe Board.java no editor central, seleccionar a janela do editor com o botão direito do rato e fazer Run As/JUnit Test para obter um relatório de alguns dos testes que serão usados na correcção do trabalho (poderão ser acrescentados outros testes).

Peço que pelo menos me ajudem a fazer o a) pois eu quero ver se consigo fazer o b) e c) por mim

Peço também desculpa pelo tamanho disto e agradeço imenso a todos os que se derem ao trabalho de ler e agradeço ainda mais a quem se der também ao trabalho de me responder,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

olá, provavelmente ainda ninguem respondeu porque pronto XD, sou eu que tenho de fazer. Acontece que eu andei a tentar e a procurar na net coisas e escrevi a segunda uma resposta para a segunda classe, axu k funciona(pelo menos quando corro ele mostra as matrizes da primeira classe mas com coisas que eu não conheço)

Aqui tá a classe 2 com coisas que eu escrevi:

import org.junit.runner.RunWith;


/*@RunWith(BoardTest.class)*/
public class Board {

private int l;
private int c;

public Board(char[][] board) {
	for(int i = 0; i != board.length; i++){
		System.out.println();
		for(int j = 0; j != board[i].length; j++){
			System.out.print(board[i][j] + " ");
		}
	}
	System.out.println();

	// TODO Auto-generated constructor stub
}
//n liguem a partir daki pk é para o resto do problema i eu ainda tou a pensar como fazer
public String toString()

public char[] getBoardText() {
	// TODO Auto-generated method stub
	return null;
}
}

O que eu obtenho quando corro isto é:

~ ~ 2 2 ~

~ 1 ~ ~ ~

~ ~ 3 ~ 2

~ ~ 3 ~ 2

Board@19821f

. . . . . . . . . .

. . . . . . . . . .

. ~ ~ ~ . ~ . . . .

. . . . . X . . . .

. . . X . . . . . .

. . . X . . . . . .

. . . X . . . . . .

. . . . . . . ~ . .

. . . . . . . . . .

. . . . . . . . . X

Exception in thread "main" java.lang.NullPointerException

at java.io.Writer.write(Unknown Source)

at java.io.PrintStream.write(Unknown Source)

at java.io.PrintStream.print(Unknown Source)

at java.io.PrintStream.println(Unknown Source)

at BoardTester.main(BoardTester.java:32)

Agradecia muito que m pudessem explicar o que é Board@19821f e pk recebo um exception in thread "main"java.lang.nullPointerException

mais uma vez agradeço a kerm ker k se de ao trabalho de simplesmente olhar pa isto i ainda mais a kem m puder ajudar nem k seja so com dicas,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em System.out.println(board1); a aplicação não sabe como converter o board1 para uma string, de modo a que  possa imprimir no ecrã o conteúdo da variável. Em princípio, basta implementares o método toString na classe Board e tens esse problema resolvido.

Já agora, evita meter aqui enunciados de problemas/trabalhos enormes. Se colocares apenas dúvidas concretas (mais pequenas), aumentas a probabilidade de obteres ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora