Zum Testen verschiedener Algorithmen und Spielregeln für die Türme von Hanoi habe ich eine Java-Klasse “Tower” geschrieben. Sie überprüft bei jeder push()-Operation, dass sie die Spielregeln einhält und zählt sie für eine spätere Analyse mit.

`

public class Tower extends Stack {
	private static int pushes = 0;
	private Type t;
	public static enum Type {
		HANOI,
		HOLLYWOOD
	}
// ...
	public static int getPushes() {
		return pushes;
	}
	public static void resetPushes() {
		pushes = 0;
	}
	public Integer push(Integer item) {
// ...
	}
}

`

Sie kann hier zusammen mit einer Implementierung des Lösung für die Türme von Hanoi heruntergeladen werden: tuerme_von_hanoi_java.zip Neben der üblichen Spielvariante gibt es auch Varianten der Spielregeln, zum Beispiel, dass zwischenzeitlich die Reihenfolge der Scheiben egal ist, sofern alle Scheiben eines Stapels kleiner sind, als die Unterste. Eine rekursive Lösung dafür ist ebenfalls enthalten. Sie benötigt für 100 Scheiben 10100 Züge. Ich würde mich freuen, wenn jemand einen schnelleren Algorithmus (rekursiv oder iterativ) findet und ihn mir schickt!