Frage

Ich arbeite an einem einfachen Multiplayer-Spiel, in der 2-4 Spieler an getrennten Einstiegspunkten in einem Labyrinth angeordnet ist und braucht einen Zielpunkt zu erreichen. ein Labyrinth im Allgemeinen zu erzeugen ist sehr einfach, aber das Ziel des Spiels ist in diesem Fall das Ziel, vor allen anderen zu erreichen und ich will nicht die Generation Algorithmus drastisch ein Spieler gegenüber anderen bevorzugen.

Also ich bin auf der Suche nach einem Labyrinth Erzeugungsalgorithmus, wo der optimale Weg für jeden Spieler vom Startpunkt zum Ziel nicht mehr Schritte als der durchschnittliche Weg mehr als 10% ist. Auf diese Weise sind die Spieler auf mehr oder weniger gleichSpielFeld. Kann jemand ausdenken einen solchen Algorithmus?

(Ich habe eine Idee, wie es steht, aber es ist nicht gut durchdacht und scheint weit weniger als optimal -. Ich es als eine Antwort hinterlassen werden)

War es hilfreich?

Lösung

Eine Alternative zur freien Speicherplatz Antwort wäre ein zufälliges Labyrinth zu erzeugen, weisen Sie jede Zelle ein Wert, den die Anzahl der Züge, die das Ende des Labyrinths zu erreichen (man beides auf einmal tun können, wenn Sie entscheiden, dass Sie beginnen bei das Ende'). Dann wählen Sie eine Entfernung (vielleicht die höchste mit n Punkten in dieser Entfernung?) und legen Sie die Spieler auf Plätzen mit diesem Wert.

Andere Tipps

Was zunächst die Position der Spieler die Auswahl und Ziel und eine gleiche Länge Pfad und danach ein Labyrinth bauen die definierten Pfade zu respektieren? Wenn die Pfade nicht schneiden sollte dies leicht arbeiten, nehme ich an

Ich würde diesen Ansatz durch die Zielsetzung und jeder Eintrittspunkt des Spielers, dann Pfade von ähnlicher Länge für jeden von ihnen, um das Ziel zu erzeugen. Dann würde ich das Hinzufügen falscher Zweige entlang dieser Wege beginnen, vorsichtig zu anderen Spielers Wege Verknüpfung zu vermeiden, oder einen Zweig mit auf den Weg verbinden zurück. So im Wesentlichen jeder Zweig ist eine Sackgasse.

Auf diese Weise garantieren Sie die Wege in der Länge ähnlich sind. Allerdings wird es nicht zulassen, dass die Spieler miteinander zu interagieren. Sie können dies jedoch setzen in, durch Verbindungen zwischen den Zweigen, so dass Zweig Einspeisepunkte auf beiden Pfaden in einem ähnlichen Abstand vom Ziel ist zu schaffen. Und auf diesem Zweig können Sie mehr Sackgassen für Spaß und Gewinn :-) abzweigen

Die einfachste Lösung, die ich mit oben kommen kann ist nach dem Zufallsprinzip ein ganzes Labyrinth wie normale zu erzeugen, dann wählen Sie zufällig den Zielpunkt und Spieler Startpunkte. Sobald dies erfolgt ist, berechnet von jedem Startpunkt zum Ziel, den kürzesten Weg. Finden Sie den Mittelwert und starten ‚Glättung‘ (entfernen / verschieben Barrieren - weiß nicht, wie dies funktionieren wird), um die Pfade, die deutlich über sie sind, bis alle Pfade innerhalb des richtigen Rand sind. Darüber hinaus könnte es möglich sein, diejenigen zu ergreifen, die deutlich unter dem Durchschnitt liegen und zusätzliche Barrieren ein.

Wählen Sie Ihren Exit-Punkt irgendwo in der Mitte

Starten Sie Ihre N Pfade von dort Addieren von 1 zu jedem Pfad pro Schleife, bis sie so lange, wie Sie sie haben wollen.

Es gibt Ihre N Startpunkte, und sie sind alle gleich lang sind.

Fügen Sie zusätzliche abzweigt der Linien, bis das Labyrinth voll ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top