IrrCube - Ein Zauberwürfel Emulator

  • Hallo Forum!
    Wir (Fresapore und meine Wenigkeit ;) ) möchten nun endlich unseren Zauberwürfel Emulator (oder auch Simulator, was ist eigentlich der genaue Unterschied? :) ) IrrCube vorstellen. Er arbeitet mit der Irrlicht Engine, die in AutoIt implementiert wurde.


    Wir arbeiten jetzt schon länger an dem Projekt, was mit der Irrlicht-Engine arbeitet, und nach einer völligen Neuüberarbeitung haben wir nun beschlossen, es mal hier hochzustellen, in der Hoffnung auf Kritik, Bugreport, Ideen, usw.

    Zum Programm selbst:


    Die Idee
    Die Idee entstand, als wir feststellten, dass es ein Irrlicht-Plugin für AutoIt gibt und wir diese kennenlernen wollten. Da erschien uns ein Zauberwürfel ein geeigneter Gegenstand um in dem Bereich neue Erfahrungen zu sammeln :) So sind nach und nach immer mehr Funktionen hinzugekommen.


    Die Systemvoraussetzungen:
    Also unter Windows 7 und Winsows Vista sollte es einwandfrei starten. (Einfach die IrrCube.exe im Ordner ausführen) Unter Xp in der Vm (für die Linux-User) muss es Direct3D9 unterstützung geben, sonst läufts nicht! Außerdem können bei XP kleinere Design fehler auftreten!


    Das Programm


    [Blockierte Grafik: http://dl.dropbox.com/u/24291162/1.jpg] Hier ein Screenshot vom Grundaussehen des Programms! In der Hilfe werden alle wichtigen Funktionen erklärt.
    Die Funktionen:

    • 3 Modi (Normales Drehen, Auf Zeit lösen, Lösen Lassen)
    • Den Würfel lösen lassen (Das Programm löst den Würfel, wie ein Mensch ihn mit einer einfachen Methode lösen würde. Dementsprechend kann er auch bis zu 300 Züge brauchen. Nur leichte Verdrehungen bis zur Tiefe 5 kann das Programm über Bruteforce lösen.
    • Im "Auf Zeit lösen" Modus, kann man versuchen den zufällig verdrehten Würfel möglichst schnell zu lösen. Die Zeit wird in die Rangliste eingetragen usw.
    • CreateCube: Diese Funktion erlaubt es mit eigener Gui, einen eigenen Würfel einzugeben, der danach z.B gelöst werden kann. Dazu bitte auf "Würfel eingeben" gehen.
    • Load/Save: So kann man Würfel laden und speichern
    • Tastenkombinationen für die Drehungen: So kann man den Würfel schnell drehen.
    • Maussteuerung: Man kann den Würfel mit der Maus steuern. Um die relative Drehungsposition zu übernehmen muss man "l" drücken.
    • Algorithmen: Vordefinierte und eigene Algorithmen helfen einem beim Lösen des Würfels.
    • (Wer Probleme mit den ganzen Pfeilen hat: Str+D
    • Die Tastenbelegungen sieht man in der Einstellungsgui unter "Tastenkürzel"

    Das wars von den grundlegenden Funktionen her, doch es gibt natürlich noch viele Kleinigkeiten zu entdecken. ;)


    Bitte meldet euch, wenn es Probleme beim Starten des Programms gibt, oder ihr irgendwelche Kritik, Bugs oder Anregungen habt!


    Viel Spaß beim Testen,
    RapIt & Fresapore


    DOWNLOAD

  • Sieht sehr schön aus und ihr habt euch ja richtig ins Zeug gelegt. :thumbsup:


    Leider habe ich keinen Plan den Zauberwürfel zu bedienen.


    Gruß,
    UEZ

  • WIrklich sehr gut! Hat mich dazu motiviert, so'n Ding mal wieder in die Hand zu nehmen :thumbup: .
    Ich schaff's noch unter einer Minute.


    Für eine mögliche nächste Version wären animierte Drehungen wirklich super. Das würde vor allem das Nachvollziehen der automatischen Lösung enorm vereinfachen. Ihr geht ja den meiner Meinung nach simpelsten Weg - nicht der schnellste aber wegen der vergleichsweise wenigen Regeln sehr leicht zu lernen. Vlt. könnte man beim "durchzappen" der Einzelschritte sogar das Feld markieren (Pfeil?), wegen dem man die aktuellen Schritte durchführt und die Drehungen in eine Gruppe zusammenfassen. Wenn der Würfel sich dabei dann auch noch automatisch zur aktuellen Frontposition dreht ... das wär erste Sahen =). Das stört mich persönlich übrigens auch beim selber lösen. Dreht man den Würfel, stimmen die Schaltflächen nicht mehr. Will man den Würfel schnell lösen, muss man sich zusätzlich merken, wo denn die ursprüngliche Fronseite gerade ist und mit welcher Schaltfläche/Taste man denn nun sein aktuelles top inverted. Augen auf, dafür gibt's offensichtlich eine Funktion mit der man die Position manuel übernehmen kann.


    Also ich bin erstmal schwer beeindruckt. Super Idee, klasse umgesetzt. Hoffe ihr arbeitet da noch weiter dran.

  • Ja das mit den animierten Drehungen ist uns auch eingefallen...
    Allerdings gibt es da son komisches Problem, was wir mit unserem Mathematikverständnis nicht so recht lösen konnten...
    Wenn man ein Node dreht - sagen wir um 90°, dann drehen sich die Achsen des Nodes mit-Sprich wenn der Würfel die Drehung X:0, Y:0, Z:0 hat und man um die Y-Achse dreht,
    ist die vorige x-Achse die z achse...Ist sone Art relative Drehung, und keine Absolute...also muss man nicht immer einfach y drehen, wenn man z.B. Top oder Down drehungen macht, sondern sie abhängig von der aktuellen Rotation berechnen...

  • Respekt! Sowas wollt ich auch mal machen aber ich wusste nicht wie ich das umsetzen sollte...


    i2c: Unter 1 Minute? Welche Methode (oder einfach aus Können?^^) Ich schaff es nur mit der einfachen Methode und nem Speed-Cube mit 1.05 Min ^^

  • :) Ich denke das schnelle Lösen ist eher eine Sache des Auswendiglernens. Für die einfachste Methode, die wir umgesetzt haben, braucht man nur einige Algorithmen und jeder versteht sie. Wenn man aber z.B. die Friedrichs-Methode kann, muss man für die letzte Ebene über 20 verschiedene Positionen und dazugehörige Algorithmen auswendig lernen. Wie schnell man den Würfel letzendlich lösen kann, ist auch teilweise Glückssache, da viele Steine schon richtig liegen können.


    Für Computer geeigenter sind eigendlich Methoden wie die Kociemba Methode. Mit der könnte man jeden Würfel in sehr wenigen Zügen lösen, was für den User sicherlich angenehmer wäre, als 250 Moves durchzulicken :D Die haben wir allerdings nicht so richtig verstanden :)


    Für das Programm wären die ersten beiden Ebenen nach der Friedrichs-Methode kein Problem gewesen, aber dann hätten wir auch die Algorithmen für die letzte Ebene implementieren müssen und die zu lernen war uns etwas zu aufwändig :D Also haben wir es einfach bei der leichtesten Methode gelassen...


    Viele Grüße,
    RapIt

  • Ich kann zwar den Zauberwürfel vom 2x2 bis 7x7 + Phyramide lösen, aber bei dem programm macht mir die steuerung eher doch probleme

  • Ist schon cool aber es steht im 1. post


    Zitat

    Den Würfel lösen lassen (Das Programm löst den Würfel, wie ein Mensch
    ihn mit einer einfachen Methode lösen würde. Dementsprechend kann er
    auch bis zu 300 Züge brauchen. Nur leichte Verdrehungen bis zur Tiefe 5
    kann das Programm über Bruteforce lösen.

    Bruteforce ist doch eine Angriffs-Hacker methode oder nicht?


    MfG
    Fabi

  • @ Fabi


    Brute-Force-Methode


    Brutforce kann zwar auch mit hacken in Verbindung gebracht werden. Allerdings ist es eine Lösungsmethode für viele verschiedene Probleme und Bereiche. Vor allem in der Informatik.
    Der Sinn dieser Mehtode liegt darin, das alle Möglichkeiten nacheinander durchprobiert werden, bis ein Erfolg eintritt.

  • WOW! Die GUI sieht erstklassig aus! Jetzt wärst du bereit, einen 3D-Figuren-Creator (ähnlich wie Blender) zu prgrammieren! Hut Ab!

    Meine fertigen Projekte:
    VirtualCash
    Monopoly Digital


    Daran arbeite ich gerade:
    Einem Skript, womit man ohne Programmierkentisse eigene Programme machen kann (habe ich selber früher gesucht :D ) Stand: ||||||||||||||||||||||||| 6%