Autor Beitrag
WormHole
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Mi 28.06.06 11:30 
Hallö,

ich "arbeite" gerade an einem Projekt in dem es eine Ampelkreuzung gibt und dort Autos fahren. Am Anfang habe ich es so gemacht, dass ich die Autos einfach von einem Bildrand zum anderen schicke und halt auf die Ampelphasen geachtet habe. Aber da das ziemlich sch**** vom Stil her ist und auch so unpragmatisch ist, wollte ich wohl gerne, das die Autos selbst entscheiden wo sie herfahren... Also sozusagen eine KI erstellen. Leider habe ich im Moment noch keine Ahnung wie ich das anstellen soll -_-


Gruß WormHole
azubi_20
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: Mi 28.06.06 11:55 
ausblenden Quelltext
1:
2:
3:
fahr geradeaus
wenn kreuzung dann zufall (links, rechts, geradeaus)
wenn sackgasse dann dreh um


ist zwar nicht intelligent, aber dafür recht simpel zu programmieren
WormHole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Mi 28.06.06 13:07 
Wie kann ich denn bei einem Image sagen, fahr geradeaus?

Links oder rechts geht ja simpel mit image.left und .top aber geradeaus?
Spaceguide
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 552


(D3/D7/D8) Prof.
BeitragVerfasst: Mi 28.06.06 13:09 
Ich würde es so machen:

1) Jedem Auto einen zufälligen, befahrbaren Punkt auf der Karte zuordnen
2) Mittels A*-Algorithmus die Wegplanung vornehmen
3) Wenn Ziel erreicht, einfach neuen Zielpunkt aussuchen
crowley
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 406

Win XP, Win Vista, Mandriva, Ubuntu
Delphi 4-8, Delphi 2006, Delphi 2007
BeitragVerfasst: Mi 28.06.06 13:21 
user profile iconWormHole hat folgendes geschrieben:
Wie kann ich denn bei einem Image sagen, fahr geradeaus?

Links oder rechts geht ja simpel mit image.left und .top aber geradeaus?


links kannst du doch schon, rechts kannst du auch schon... und bei geradeaus bewegst du es weiter in die gleiche richtung wie zuvor...


bewegung auf der "karte" nach links: pic.left := pic.left - x;
bewegung auf der "karte" nach rechts: pic.left := pic.left + x;
bewegung auf der "karte" nach oben: pic.top := pic.top - y;
bewegung auf der "karte" nach unten: pic.top := pic.left + y;
WormHole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Mi 28.06.06 13:22 
user profile iconSpaceguide hat folgendes geschrieben:
Ich würde es so machen:

1) Jedem Auto einen zufälligen, befahrbaren Punkt auf der Karte zuordnen
2) Mittels A*-Algorithmus die Wegplanung vornehmen
3) Wenn Ziel erreicht, einfach neuen Zielpunkt aussuchen


Hmm, was ist denn dieser A*-Algorithmus? Wo kann ich den herbekommen? Also zur Info: Ich bin nicht sonderlich gut in Delphi :P
Spaceguide
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 552


(D3/D7/D8) Prof.
BeitragVerfasst: Mi 28.06.06 13:26 
user profile iconWormHole hat folgendes geschrieben:

Hmm, was ist denn dieser A*-Algorithmus? Wo kann ich den herbekommen? Also zur Info: Ich bin nicht sonderlich gut in Delphi :P


Keine Angst, Delphi-Forum.de ist fast ausschliesslich ein Anfängerforum. Bei Wikipedia (de.wikipedia.org/wiki/A%2A) findest du eine gute Erklärung.
crowley
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 406

Win XP, Win Vista, Mandriva, Ubuntu
Delphi 4-8, Delphi 2006, Delphi 2007
BeitragVerfasst: Mi 28.06.06 13:27 
user profile iconWormHole hat folgendes geschrieben:
user profile iconSpaceguide hat folgendes geschrieben:
Ich würde es so machen:

1) Jedem Auto einen zufälligen, befahrbaren Punkt auf der Karte zuordnen
2) Mittels A*-Algorithmus die Wegplanung vornehmen
3) Wenn Ziel erreicht, einfach neuen Zielpunkt aussuchen


Hmm, was ist denn dieser A*-Algorithmus? Wo kann ich den herbekommen? Also zur Info: Ich bin nicht sonderlich gut in Delphi :P


spaceguide meinte damit sicherlich den algorithmus, den user profile iconazubi_20 weiter oben schon beschrieben hatte:

user profile iconazubi_20 hat folgendes geschrieben:

ausblenden Quelltext
1:
2:
3:
fahr geradeaus  
wenn kreuzung dann zufall (links, rechts, geradeaus)  
wenn sackgasse dann dreh um

Spaceguide
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 552


(D3/D7/D8) Prof.
BeitragVerfasst: Mi 28.06.06 13:32 
user profile iconcrowley hat folgendes geschrieben:

spaceguide meinte damit sicherlich den algorithmus, den user profile iconazubi_20 weiter oben schon beschrieben hatte:


Falsch!

Hier eine Implementierung in Delphi: www.hanisch-software...iges/pathfinding.php
[emptyBox]
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16

WIN XP Prof
Delphi 7 Pers.
BeitragVerfasst: Mi 28.06.06 13:54 
hi,

Also wenn das ein anspruchsvolles Projekt werden soll, sollte man sich überlegen ob sich ein MapEditor lohnt. Durch diesen könnte man dann Wegpunkte (sowie natürlich auch das Level selber) setzen.
--> wenns mal auf ein GTA hinauslafen sollte ^^
WormHole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Mi 28.06.06 13:59 
Nur wie kriege ich den Pathfinder Algorithmus bei mir hinein?

EDIT: Oder soll ich den nicht benutzen?
WormHole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Mi 28.06.06 16:44 
Könnt ihr mir noch schnell helfen? Ich muss gleich wech und wollte wenigstens noch wissen wie ich das machen soll... *push*