Verfasst am: 11.04.2016, 18:08
Titel: Türme von Hanoi mit grafischer Oberfläche
Hallo Zusammen,
ich hoffe ihr könnt mir helfen.
Ich möchte gerne Die Türme von Hanoi auf Matlab programmieren mit einer grafischen Oberfläche.
Das ist ein kleines "Spiel", bei dem man 3 Säulen hat und 2 oder mehr Scheiben von einer Säule auf eine andere verschieben soll. Dabei dürfen nur kleine auf größeren Scheiben liegen etc.
Ich habe leider zuvor noch nicht mit Matlab gearbeitet. Ich habe mir schon ein paar Gedanken gemacht wie ich das ganze angehe.
Ich habe das Skript:
Code:
% Script to do Towers of Hanoi in Matlab
num = input('Towers of Hanoi: How many disks?\n');
fprintf('\n\n');
towers(num,'a','c','b');
fprintf('\n\n')
und die Funktion:
function[] = towers(n,frompeg,topeg,auxpeg);
if(n == 1) fprintf('\t move disk 1 from peg %c to peg %c \n',frompeg,topeg);
else
towers(n-1,
frompeg,auxpeg,topeg);
fprintf('\t move disk %d from
peg %c to peg %c \n',
n,frompeg,topeg);
towers(n-1,auxpeg,topeg,frompeg);
end;
wie bekomme ich hierzu eine grafische Oberfläche? In dieser möchte ich die 3 Scheiben anklicken und verschieben können. Dabei möchte ich eine Aussage bekomme ob dieser Zug möglich oder nicht möglich ist.
Danke für die Hilfe!
edit winkow: bitte code umgebung verwenden.
Na klar kann man Dir helfen. Bitte stelle eine konkrete Frage, damit wir Dir antworten können! Wie soll es denn aussehen? Was hast Du bisher versucht? An welchem Detail scheiterst Du gerade?
3 Türme (Stäbe), auf dem ersten Turm sollen beim Start 3 Scheiben (Farbige Balken oder ähnliches) liegen. Diese soll man verschieben können und auf die anderen Türme verteilen können. Dabei soll immer eine Fehlermeldung angezeigt werden wenn der Zug nicht möglich ist.
Ich habe leider überhaupt keine Ahnung wie ich das ganze Umsetzen kann.
Du kannst hier Grafiken in 2D oder 3D erzeugen, aber auch bunte Buchstaben im Command-Window ausgeben. Du kannst Buttons unter den Türmen einfügen um den Start- und Endpunkt der Bewegung vorzugeben, oder die Scheiben mit der Maus dragbar machen. Bei 3D-Grafiken wären Schatten und Texturemapping auf den Obeflächen natürlich hübsch.
Kurz: Es gibt 1000 Möglichkeiten. Da nicht klar ist, welchen aufwand Du betreiben möchtest, ist eine Antwort deswegen kaum möglich.
Schaue Dir doch einfach mal andere Implementierungen an, da gibt es im Internet ja jede Menge Beispiele.
Wenn Du wirklich "überhaupt keine Ahnung" hast, wie man das Umsetzt, wäre es vielleicht eine Überlegung wert, ob Du dies als Programmierauftrag in der entsprechenden Kategorie postest. Das könntest Du dann als Tutorial für die Erstellung von Matlab-GUIs verwenden. Das ist aber auch gleich schon ein gutes Stichwort: Suche im Netz doch mal nach "Matlab GUI tutorial".
Ich gebe es nun auf selbst hierzu eine Lösung zu finden. Falls jemand Interesse hat diese Aufgabe zu lösen und sich eine "Kleinigkeit" dazu zu verdienen mag sich bei mir per PN melden mit Preisvorstellung.
wie jan bereits hingeweisen hat giebt es im netz viele lösungen unter anderem giebt es auch im FEX von matlab eine grafische lösung. die meine ich. einfach hanoi im fex suchen. wenn du nicht weis was fex ist. der erste anschlag bei google unter matlab fex.
_________________
Okay ich habe es nun gefunden was ihr meint.
Ich möchte das ganze aber viel einfacher haben und nicht so kompliziert. Kann man davon irgendwo eine "abgespeckte Version" finden?
Mir reichen lediglich 3 scheiben aus.
Gruß
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.