AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Figuren sollen beim Game nach bestimmten Regeln laufen
Thema durchsuchen
Ansicht
Themen-Optionen

Figuren sollen beim Game nach bestimmten Regeln laufen

Offene Frage von "Chrissi91"
Ein Thema von Chrissi91 · begonnen am 2. Sep 2007 · letzter Beitrag vom 4. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#1

Figuren sollen beim Game nach bestimmten Regeln laufen

  Alt 2. Sep 2007, 10:24
Hi,

ich sitze seit heute früh an meinem 2. 2D-Game. Ich mache mir gerade Gedanken über die Computergegner. Sie sollen durch einen Wald laufen (nur auf den Wegen), sich von einem bestimmten Ort fernhalten und die Tendez haben, an einen bestimmten Ort zu wandern.

Hintergrund: je nach Level soll der Spieler die Coomputergegner einfangen, die aus dem Gefängnis geflohen sind. Logischerweise laufen sie von dem Gefängnis weg. ^^ Nun gibt es eine Stelle, an der sie vom Spieleld verschwinden können. Praktisch ihre Fluchtmöglichkeit. Sie sollen die Tendez haben, dort hinzugehen, aber das nicht von Vorne herein tun. (Also nicht schnur stracks dorthin laufen) Außerdem sollen sie nicht mehrmals den selben Weg laufen.

Es geht mir jetzt nicht um den Code, sondern um eine Idee, wie man das umsetzen könnte. Klar könnte mn die einfach nach Zufall laufen lassen, aber sollte es nciht so extrem sein, dass sie ein Schritt vor, ein Schritt zurück und dann nach rechts gehen. oO

Sollte schon eine gewissen Logik drin sein.

Hoffe ihr habt ein paaar Ideen für mich.
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#2

Re: Figuren sollen beim Game nach bestimmten Regeln laufen

  Alt 2. Sep 2007, 11:19
Hi,

so ganz genau kann ich mir noch nicht vorstellen, wie sie Laufen sollen, aber ich geb dir einfach mal eine Vorstellung davon, wie ich es umsetzen würde.

Ich nehme mal an du hast die Karte als Graphen vorliegen und, dass die Gefangenen nur an einer Stelle aus dem Gefängnis brechen. Dann würde ich alle möglichen Wege zum "Rettungsknoten" berechnen, ohne dass Knoten mehrmals besucht werden dürfen. Wenn du nicht willst, dass die Entflohenen auch zurück in Richtung Gefängnis laufen kannst du ja für jeden Knoten die Entfernung vom Gefängnis berechnen und Wege, bei denen es von einem Knoten höherer Entfernung zu einem Knoten niedrigerer Entfernung geht ausschließen (ich denke mal, dass der Rettungspunkt am weitesten vom Gefängnis entfernt ist?).

Für jeden Gefangenen wählst du jetzt zufällig einen Weg aus. Je nach Schwierigkeitsgrad kannst du die Wahrscheinlichkeit, dass kürzere Wege genommen werden erhöhen, so verschwinden die Gefangenen schneller vom Bildschirm.

Die Gefangenen würden sich so einigermaßen realistisch verhalten, da sie sich nur vom Gefängnis wegbewegen, ein konkretes Ziel haben so nichts doppelt besuchen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Figuren sollen beim Game nach bestimmten Regeln laufen

  Alt 2. Sep 2007, 12:18
Eine Lösung könnte der A*-Algorithmus zur Wegfindung sein. Das Spielfeld ist für die Gegner ein Labyrinth mit dem Gefängnis als Startpunkt und de Fluchtmöglichkeit als Zielpunkt. Damit nicht jeder Gegner den gleiuchen Weg nimmt, ist für jeden Gegner das Spielfeld ein anderes Labyrinth.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#4

Re: Figuren sollen beim Game nach bestimmten Regeln laufen

  Alt 2. Sep 2007, 13:03
Hi,


Zitat von Luckie:
Damit nicht jeder Gegner den gleiuchen Weg nimmt, ist für jeden Gegner das Spielfeld ein anderes Labyrinth.
Das verstehe ich nicht. Gehen wir erstmal nur von einem Level aus. Die Map wird geladen. Z.B. aus einer TXT-Datei in dem das Spielfeld mit 0, 1, 2 dargestellt ist. 0 Weg, 1 Baum, etc. Nun wird die Map gezeichnet. Jetzt laufen die los, alle vom selben Ort, dem Gefängnis. Sprich ich habe mehrere Gegner, die in 1 Labyrinth sind. Kollisionen sind erstmal nicht das Problem, aber ich verstehe deienn Satz nicht. ^^

Es ist nicht festgelegt, dass der Fluchtweg der Längste ist und ob es 1 oder merere Fluchtwege gibt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Figuren sollen beim Game nach bestimmten Regeln laufen

  Alt 2. Sep 2007, 13:28
Der A*-Algorithmus sucht einen Weg in einem Labyrinth. Da mehrer Wege wohl zum Ziel führen, aber alle Gegner den gleichen Algorithmus zur Wegsuche nutzen, werden alle Gegner den gleichen Weg nehmen.


Code:
   
          Weg A
          Weg B
Start    Weg C        Ziel
          Weg D
          Weg E
Um jetzt nicht für jeden Gegner einen eigenen, abgeänderten Algorithmus verwenden zu müssen, blockierts du eben für jeden Gegner alle Wege bis auf einen. So das der erste Gegner nur Weg A nehmen kann, der zweite nur Weg B und soweiter. Du kannst die Wege zum Beispiel einfach mit Bäumen blockieren. Die Labyrinthe der Gegner werden ja sowieso nicht dargestellt. Somit hat jeder Gegner ein, für sich, etwas anders Labyrinth. Wenn jeder Gegner ein Objekt ist, ist das ganze kein Problem. Denn jedes Gegner-Objekt hat eben noch die Eigenschaft Labyrinth.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Figuren sollen beim Game nach bestimmten Regeln laufen

  Alt 2. Sep 2007, 15:19
Oder, was mach auch machen kann, jeder Gegner hat nicht nur ein Zielpunkt, sondern zufällig verteilte Wegpunkte, die er erst ablaufen muss. Ich glaube, das wäre die einfachere Lösung und sie erscheint mir auch schöner.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#7

Re: Figuren sollen beim Game nach bestimmten Regeln laufen

  Alt 2. Sep 2007, 16:59
Zitat von Luckie:
Oder, was mach auch machen kann, jeder Gegner hat nicht nur ein Zielpunkt, sondern zufällig verteilte Wegpunkte, die er erst ablaufen muss. Ich glaube, das wäre die einfachere Lösung und sie erscheint mir auch schöner.
Jepp! Klasse Idee!Werde ich vermutlich so umsetzen. Aber mit dem Algo habe ich jetzt verstanden.
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Figuren sollen beim Game nach bestimmten Regeln laufen

  Alt 3. Sep 2007, 15:09
Hi!

Ich weiß, dass man pro Frage einen neuen Thread aufmachen soll. Aber ich denke so ist der Zusammenhang besser.

Im Spiel soll der Gegener sich auf den Spieler zu bewegen. (Im Bild ist das Ziel nicht der Spieler, aber das ist ja im Moment egal)

So richtig hab ich den A* Algorithmus noch nicht kapiert. Geht der jetzt alle Städte durch und guckt dann wo es am kürzesten war. Denn warum geht er erst nach Karlsruhe und dann nimmt er doch den Weg weiter oben von Frankfurt nach Würzburg.

Ich schätze diese Vernetzung, die man im Schema bei Wiki sieht, entspräche den Zellen in meinem Level, welche begehbar sind. Somit bleibe am Start ja nur links. Aber wie kann ich überfliegen, welcher Weg der kürzeste ist? (Dies ist wahrscheinlich die Stelle welche ich im Algo nicht kapiere, also ob der jeden weg durchgeht oder das irgentwie errechnet).

Das Level würde sich auch noch ohne ein komplexeren Algorithmus lösen lassen (einfach in die einzige Richtung gehen, die geht. Wenns nicht geht: Springen) Aber es kann ja auch schwerer werden.
Miniaturansicht angehängter Grafiken
suchweg_158.jpg  
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

Re: Figuren sollen beim Game nach bestimmten Regeln laufen

  Alt 3. Sep 2007, 15:54
Ich denke, das wäre eher ein Fall für den Ameisenalgorithmus.
Parallel zum Spielfeld existiert eine 2-dimensionale "Geruchskarte".
Jeder Gegner hinterlässt dort seine "Duftspur".
Weitere Gegner bevorzugen Felder, auf denen schon ein Geruch liegt (es sei denn, das Feld wäre schon belegt).
Mit der Zeit werden die Gegner auf regelrechten Strassen laufen.
Wenn ein Gegner sein Fluchtloch erreicht, kann er sich ja zu 5% selbst opfern und zurücklaufen.
Dabei hinterlässt er eine 10-fach stärkere Duftspur und lockt so sein Kollegen an.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von halinchen
halinchen

Registriert seit: 13. Jun 2006
508 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Figuren sollen beim Game nach bestimmten Regeln laufen

  Alt 4. Sep 2007, 17:16
Danke für deine Antwort!

Ich hab die erst gar nicht gesehen, da ich gar keine Mail bekommen habe.

Die Idee ist auch nicht schlecht. Aber bei mir sollen die Gegener nicht auf einen Haufen sein, sondern im Spiel verteilt sein. Das könnte ich eventuell so einbauen, das es als 2-rangiger Faktor in meinem Prinzip geht. (dazu weiter unten)

Erstmal: Ich hab den Absatz über die Heuristik wohl übersehen, da steht das ja drin, dass es nicht jedes Feld durchgeht. Aber ich kapier den A* Algo nicht. (Den Pseudocode auch nicht). Aber ich denke er ist nicht so richtig was für mich. (Zumindest am Anfang nicht, es ist ja das 1. Mal, dass ich eine KI programmieren will)

Ich kann mich (sehr dunkel) daran erinnern, dass es auf so eine Frage schonmal eine Antwort gab: Die 8 Kacheln um mich herum versehe ich mit der Nummer, wie weit entfernt diese vom Ziel entfernt ist. Der Gegner nimmt de Weg wo der Index am kleinsten ist. Bei einer Wand wird's ignoriert. Damit er auch mal weiter weg geht, streiche ich die betretenen Felder für eine Zeit. So sollte der Gegner immerhin einigermassen kleinere Irrwege umgehen können.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz