Archief - Hulp bij Java

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

tom001

Legacy Member
Hallo iedereen
Voor een schoolopdracht moet ik het 8 puzzle game maken. In de Solver.java klasse maak ik zoals hieronder is aangegeven een kleine Node klasse die ik dan onderaan gebruik. Bij de constructor van de Node klasse loopt het mis. De variabelen worden niet geinitialiseerd.
Kunnen jullie me hier verder mee helpen?

Code:
 public class Solver
{
	class Node  {
		
		public Board board;
		public Board previousBoard;
		public int moves;
		
		public Node (Board b, Board previous, int m) {
			Board board = b;
			Board previousBoard = previous;
			int moves = m;
		}
	}

	public Solver(Board initial, PriorityFunc priority)
	{		
		Node currentNode = new Node(initial, initial, 0);               // HIER loopt het dus mis. initial wordt niet aan board toegekend. Waarom? Wat moet het wel zijn?
	        	        
	        System.out.println("HHHHHH");
	        if (currentNode.board == null) 
	        	System.out.println("AAAAAAAAA");

	     ....

	        }

Sulake

Legacy Member
Hallo!

Volgens mij gaat het mis bij jouw Node constructor. Namelijk:

Code:
		public Node (Board b, Board previous, int m) {
			Board board = b;
			Board previousBoard = previous;
			int moves = m;
		}

is niet hetzelfde als:

Code:
		public Node (Board b, Board previous, int m) {
			board = b;
			previousBoard = previous;
			int moves = m;
		}

Je wilt een waarde toekennen aan de instance variable toch? :D

Trouwens, ik heb verder nog wat tips voor je. Fouten loggen met println() is not done. Heb je exception handling al gezien op school?

Voorbeeldje
Code:
if(currentNode == null) {
throw new NullPointerException("currentNode may not be initialized at method Solver");
}

tom001

Legacy Member
Sulake zei:
Hallo!

Volgens mij gaat het mis bij jouw Node constructor. Namelijk:

Code:
		public Node (Board b, Board previous, int m) {
			Board board = b;
			Board previousBoard = previous;
			int moves = m;
		}

is niet hetzelfde als:

Code:
		public Node (Board b, Board previous, int m) {
			board = b;
			previousBoard = previous;
			int moves = m;
		}

Inderdaad, ik had het ondertussen al gevonden en wou de thread verwijderen, maar dat is niet toegestaan denk ik.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan