14 Januar 2014 ~ noch keine Kommentare

JAVA und das Sudoku Rätsel

klausuraufgabe

Da ich gerade in der Prüfungsvorbereitung bin, schaue ich mir natürlich alte Klausuren der letzten Jahre an. Besonders im Fach Programmieren (Java) scheint das ja recht naheliegend. Die obige Fragestellung, die an Sudoku angelehnt und eigentlich noch weiter vereinfacht ist, schien mir zwar auf den ersten Blick recht simpel, dennoch saß ich recht lange vor meinem Eclipse und bekam einfach nichts Ordentliches heraus. Klar, bei der konkreten Fragestellung mit 9 Zahlen hätte man auch ganz simpel 9 Variablen anlegen können und diese dann einzeln abfragen. Wäre in der Klausur bestimmt akzeptiert worden, aber schön sieht anders aus.  So, nachdem ich dann mein ganzes Umfeld mit diesem “Rätsel” genervt hatte, kam die eine oder andere interessante Idee für einen Ansatz heraus.

Hier also meiner:

public class Sudoku {

	public static boolean sudokuChecker(int sudokufeld[][]) {

		int anzahl = sudokufeld.length * sudokufeld[0].length;
		boolean[] pruefArray = new boolean [anzahl];

		for (int i = 0; i < sudokufeld.length; i++) {

			for (int j = 0; j < sudokufeld[0].length; j++) {

			pruefArray[sudokufeld[i][j]-1] = true;	
                        // boolsches Array anlegen,
                        // Wenn Index = zu prüfende Zahl
                        // -> auf true setzen
			}

		}

		for (int z = 0; z < pruefArray.length; z++) {
			if (pruefArray[z] != true) return false;
                        // gibt es ein Feld im Prüfarray, das 
                        // nicht true ist?
		}
			return true;
	        }	

		public static void main(String[] args) {

			int[][] sudokufeld = {{1,2,3} , {4,5,6} , {7,8,9}};
			System.out.println(sudokuChecker(sudokufeld));
		}
}

Sehen sicher putzig aus, diese Gehversuche eines Java-Neulings. Dürfte aber soweit funktionieren und sieht nun im Nachhinein auch ganz simpel und logisch aus – und funktioniert mit quadratischen Feldern beliebiger Größe. Ich frage mich nur, ob ich das auch in der Klausur (die mit Kulli und Papier zu bewältigen ist) so hinbekommen hätte…

greg

Blogger bei kleingebloggt
Servus! Mein Name ist Michael Gregor, ich bin E-Commerce Student an der FHWS, Blogger, Webworker und schon IT-Geek seit ich 1994 meinen ersten 386er hatte 🙂

Hinterlasse einen Kommentar

Kommentare werden moderiert, es kann also etwas dauern, bis dein Kommenatar angezeigt wird.

RSS abonnieren
Twitter Profil