Puzzle programmieren

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

haiflosse

Betreff: Puzzle programmieren

BeitragMi, Feb 09, 2011 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich möchte ein 2D und 3D Holzpuzzle entwickeln. Ich habe verschieden Holzbausteine (die Figuren ähneln die des Samoa Würfels).

Die Bausten werden in eine Rechtecksform (2D) gelegt oder in eine Stufenpyramide (3D) aufgebaut.

Ich suche nun ein Programm, dass mir alle möglichen Positionen für 2D und 3D berechnen kann.

Hoffe da kann mir jemand weiterhelfen, wie ich dies realisieren könnte bzw. ob es da bereits Beispiele gibt.
Vielen Dank für jede Antwort

Xeres

Moderator

BeitragMi, Feb 09, 2011 22:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaub', hier wäre eine Beispielskizze ganz angebracht... Was sollen "alle möglichen" Positionen sein? Ich kann mir das Problem nicht so recht verdeutlichen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

haiflosse

BeitragDo, Feb 10, 2011 0:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Vielen Dank mal für die Antwort.
Ich habe da mal zwei Muster ins Netz gestellt:
Ich habe verschieden Bausteine die in eine Fläche (Rechteck) gelegt werden wie z.B. bei:
http://netzwerk.lima-city.de/pyramide2d.jpg

Die Bausteine können aber auch anders in das selbe Rechteck gelegt werden.
Dafür suche ich ein Programm, dass mir die Möglichen verschiedenen Positionen der Steine in diesem Rechteck berechnet.

Die selben Steine kann ich auch in eine 3D Pyramide positionen wie z.B. bei:
http://netzwerk.lima-city.de/pyramide3d.jpg

Auch dort kann ich die Steine umlegen um diese in die Pyramide auch anders anzuordnen. Dies soll auch ein Programm berechnen.

Hoffe da kann mir jemand weiterhelfen.
Vielen Dank für jede Antwort

SM3D

BeitragDo, Feb 10, 2011 0:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich Deine Idee jetzt richtig interpretiere dann bleibt da nur selber programmieren. Ich denke nicht das es ein solches Programm geben wird, jeden Fall ist mir sowas nicht bekannt.

Dein Wunsch und Dein Projekt klingt ziemlich speziell. Einzige Möglichkeit die mir noch einfallen würde um an Infos zu kommen oder eventuell mit viel Chance an ein entsprechendes Programm wäre das Du Google mal mit entsprechenden Suchanfragen nötigst. Aber wie gesagt ich sehe das mal so das Du das Programm dafür wohl eher selber schreiben musst, da Du damt auch spezielles machen möchtest.

Du bräuchtest dazu ja folgende Werte:

- Größe eines Quarders (Höhe,Breite,Tiefe, Volumen)
- Anzahl der Quarder ingesamt auf der Fläche
- Positionen der Quarder
- Sichtfeld (von welcher Position aus sind die Würfel sichtbar)

Jetzt wird es natürlich noch spezieller da immer noch nichts genaues aus Deinen Infos hervor geht. Was soll denn damit passieren? Wird das ein Puzzel wo man die einzelnen Quarder verschieben kann? Wenn ja von was abhängig? Von dem Muster (Textur) ? Von Zeit ? Von anderen Einflüssen ? In welche Richtungen dürfen die Würfel verschoben werden ? Gibt es eine freie Stelle oder sind alle Plätze belegt ? Das wäre dann wichtig weil es je nach dem eine andere Möglichkeit vorraussetzt wie die Quarder verschoben werden können.

Wenn es um ein Puzzel geht kann es natürlich noch wichtig sein zu wissen welche Würfel vielleicht aus welchen Gründen auch immer nicht verschoben werden dürfen und welche Würfel lassen sich wie bewegen (Richtungen).

Das war nur so ein Anriss um zu zeigen das einfach mehr (detailiertere) Infos von nöten sind um weiter darauf ein zu gehen.

Und wieso 2D ? ich sehe auf Deinen Bildern nur 3D (in beiden Fällen)

Was ist beim zweiten Beispiel mit den Zwischenräumen (da von nichst ist zwischen den Schichten) sind die zu berücksichtigen ? Oder sind die Schichten nur symbolisch über ein ander?

MfG

ToeB

BeitragDo, Feb 10, 2011 1:00
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Glaub ich kaum das es dafür ein Programm gibt.

2. Ist das so ein komplexer Algorithmus, da muss man sich schon zeit intensiv hinsetzten und sich eine Lösung zusammen hauen (Am besten du erstellst die so ein Puzzel aus Papier / Holz oder malst es am pc und erstellst für dich erstmal die Lösungen. Dann musst du dich Fragen, wie bist du vorgegangen, wie könnte ein PC das lösen. Und irgendwann kommst du dann drauf.

Ich wollte dir damit jetzt nicht die Lust an deinem Projekt verderben, aber ich denke kaum das Leute sich speziell zu diesem Thema schon mal Gedanken gemacht haben.

Frohes gelingen,

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Midimaster

BeitragDo, Feb 10, 2011 9:17
Antworten mit Zitat
Benutzer-Profile anzeigen
also wenn es ein am Computer simuliertes Puzzle geht, gibt es doch von jedem Stein aus gesehen nur 6 Richtungen, in denen ein nächster Stein angelegt werden kann.

Zunächst muss ich fragen, ob ich dich da falsch verstanden habe: Planst Du das Puzzle auch real herzustellen?
Wozu sollen die Berechnungen dienen? Soll durch die Berechnung später ein Bild auf die Steine projiziert werden? Oder dienen die Berechnungen nur dem Setzen der Steine?

Wenn Du die Einheiten genau auf eine Kantenlänge eines Steines setzt, dann sind doch die möglichen Positionen ausgehend von einem ersten Stein bei (0,0,0) folgende:
(-1,0,0)
(1,0,0)
(0,-1,0)
(0,1,0)
(0,0,-1)
(0,0,1)
also eigentlich doch leicht zu berechnen, oder? Oder meinst Du was ganz anderes?

Das flächige Puzzle (ohne zweite Ebene) is spieltechnisch gesehen sogar nur 2D. Nur die Darstellungen später wird wie 3D aussehen.

BaseTH

BeitragDo, Feb 10, 2011 10:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Guten Morgen haiflosse,

wenn ich dich richtig verstehe möchtest du die Anzahl der verschiedenen Muster welche möglich sind haben.

Bei einem Spielfeld von 3 * 2 Feldern sind dieses z.B. 720 Möglichkeiten.

- Für den ersten Stein gibt es 6 mögliche Felder auf die dieser gesetzt werden kann.
- Der zweite Stein kann dann noch auf 5 mögliche Felder gesetzt werden.
- Der dritte Stein kann auf 4 mögliche Felder gesetzt werden.
- Der vierte Stein kann auf 3 mögliche Felder gesetz werden.
- Für den fünften Stein bleiben noch 2 Felder
- Der letzte Stein kommt auf das letzte freie Feld.

Formel zur Berechnung der Möglichkeiten ist daher: X = 6 * 5 * 4 * 3 * 2 * 1

Ein Beispiel als Code: BlitzBasic: [AUSKLAPPEN]
 ...
Anzahl_der_Felder = Anzahl_der_Felder_Breite * Anzahl_der_Felder_Hoehe
Zwischenwert = Anzahl_der_Felder
Repeat
Muster_Moeglichkeiten = Zwischenwert * (Anzahl_der_Felder - 1)
Zwischenwert = Muster_Moeglichkeiten
Anzahl_der_Felder = Anzahl_der_Felder - 1
Until Anzahl_der_Felder = 1
Print Muster_Moeglichkeiten
...


Als erstes wird die Anzahl der Felder berechnet und dann wird in der Schleife nach und nach die Anzahl der Möglichkeiten ausgerechnet. Am Ende wird die Anzahl der Möglichkeiten ausgedruckt.

Wichtig: Dieser Code ist nur ein Teilcode und so nicht lauffähig.

Gruß,
BaseTH

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group