package de.hska.info1.uebungen.backtracking; /** * Programmgerüst, um das Haus vom Nikolaus mit Backtracking zu lösen. * * @author pape */ public class HausVomNikolaus { private static final int KEINE_KANTE = 0; private static final int KANTE = 1; private static final int KANTE_GEZEICHNET = 2; private int haus[][] = { {0, KANTE, KANTE, KANTE, 0}, {KANTE, 0, KANTE, KANTE, 0}, {KANTE, KANTE, 0, KANTE, KANTE}, {KANTE, KANTE, KANTE, 0, KANTE}, { 0, 0, KANTE, KANTE, 0} }; private int loesung[] = new int[8]; // ggf. 9 statt 8 // Die folgende Methoden hat Syntaxfehler, da keine Bedinungen // bei if/while angegeben sind // statt while, kann auch for verwendet werden public boolean sucheLoesung( /* Parameter, um einen Schritt zu merken */ ) { while ( /* Noch nicht fertig && ex. noch Teillösungsschritte */ ) { // wähle nächsten Schritt if ( /* Schritt ist gültig */ ) { // erweitere Lösung if ( /* Lösung noch nicht vollständig */ ) { if ( sucheLoesung( /* neuer Schritt */ ) ) { return true; } else { // Mache Schritt rückgängig } } else { return true; } } } return false; } }