KI für Dummies
- DasJan
- Adventure-Treff
- Beiträge: 14683
- Registriert: 17.02.2002, 17:34
- Wohnort: London
- Kontaktdaten:
Re: KI für Dummies
Dijkstra berechnet nur die kürzesten Wege zu einem Ziel, hier sind aber alle möglichen kürzesten Wege erforderlich. Man kann natürlich für jedes Ziel den Dijkstra aufrufen, das ist dann aber langsamer als einmal Floyd-Warshall.
Das Jan
Das Jan
"If you are the smartest person in the room, you are in the wrong room."
- DasJan
- Adventure-Treff
- Beiträge: 14683
- Registriert: 17.02.2002, 17:34
- Wohnort: London
- Kontaktdaten:
Re: KI für Dummies
Hier ist die Datei:
http://www.adventure-treff.de/temp/dasj ... xample.php
Ich glaube aber, deine Matrix ist nicht korrekt. Der Eintrag (k_58, k_11) ist 0, der Eintrag (k_11, k_58) ist aber 1. Du kannst also von k_11 nach k_58 laufen, aber nicht von k_58 nach k_11 (oder umgekehrt).
Das Jan
http://www.adventure-treff.de/temp/dasj ... xample.php
Ich glaube aber, deine Matrix ist nicht korrekt. Der Eintrag (k_58, k_11) ist 0, der Eintrag (k_11, k_58) ist aber 1. Du kannst also von k_11 nach k_58 laufen, aber nicht von k_58 nach k_11 (oder umgekehrt).
Das Jan
"If you are the smartest person in the room, you are in the wrong room."
- DieFüchsin
- Adventure-Gott
- Beiträge: 4411
- Registriert: 12.03.2004, 16:55
Re: KI für Dummies
Danke dir.
Ja, ich dacht mir schon, dass ich da Fehler drin habe, aber so kann ich alles nochmal gut überprüfen.
Ja, ich dacht mir schon, dass ich da Fehler drin habe, aber so kann ich alles nochmal gut überprüfen.
Danke, Adventuretreff! <3
- DieFüchsin
- Adventure-Gott
- Beiträge: 4411
- Registriert: 12.03.2004, 16:55
Re: KI für Dummies
So, nun habe ich dank DasJan endlich die errechneten Werte für Abstand und Predecessors.
Allerdings kann ich in eindimensionalen Arrays ja nicht schreiben, oder?
Ich müsste also alles in einen Array reinquetschen: 107*107 Stellen ergäbe das dann.
Leider macht AGS da aber nicht mit, das lässt nur maximal 500 Stellen zu.
Kann ich das mit eindimensionalen Arrays jetzt überhaupt irgendwie machen oder brauche ich dazu unbedingt zweidimensionale?
Allerdings kann ich in eindimensionalen Arrays ja nicht
Code: Alles auswählen
matrix[0][1]
Ich müsste also alles in einen Array reinquetschen: 107*107 Stellen ergäbe das dann.
Leider macht AGS da aber nicht mit, das lässt nur maximal 500 Stellen zu.
Kann ich das mit eindimensionalen Arrays jetzt überhaupt irgendwie machen oder brauche ich dazu unbedingt zweidimensionale?
Danke, Adventuretreff! <3
Re: KI für Dummies
Hast du es schon eimal mit einem Feld aus jeweils 107 Feldern mit je 107 Werten versucht? Also einem Array-Array? 

- DieFüchsin
- Adventure-Gott
- Beiträge: 4411
- Registriert: 12.03.2004, 16:55
Re: KI für Dummies
Sowas hier:
Ein Feld, wo jedes Element wiederum ein Feld ist.
PS: Ist die Feldlänge bei AGS wirklich auf 500 begrenzt? Warum?
Code: Alles auswählen
$feld = array (
array (...),
array (...),
...
);
PS: Ist die Feldlänge bei AGS wirklich auf 500 begrenzt? Warum?
- DasJan
- Adventure-Treff
- Beiträge: 14683
- Registriert: 17.02.2002, 17:34
- Wohnort: London
- Kontaktdaten:
Re: KI für Dummies
Sicher, dass AGS das unterstützt? Sieht für mich eher nach PHP aus.Beowulf hat geschrieben:Sowas hier:
Code: Alles auswählen
$feld = array ( array (...), array (...), ... );
Das Jan
"If you are the smartest person in the room, you are in the wrong room."
- DieFüchsin
- Adventure-Gott
- Beiträge: 4411
- Registriert: 12.03.2004, 16:55
Re: KI für Dummies
Keine Ahnung, ob AGS das unterstützt. Ich werd mich mal an meine freundlichen Profis im AGS-Forum wenden.
Keine Ahnung, warum, aber als ich einen Spieltestlauf starten wollte, mokierte sich AGS mit einer Fehlermeldung über die hohe Anzahl an Einträgen im Array und meinte, 500 wären das Maximum.
Beowulf hat geschrieben:
PS: Ist die Feldlänge bei AGS wirklich auf 500 begrenzt? Warum?
Keine Ahnung, warum, aber als ich einen Spieltestlauf starten wollte, mokierte sich AGS mit einer Fehlermeldung über die hohe Anzahl an Einträgen im Array und meinte, 500 wären das Maximum.
Danke, Adventuretreff! <3
Re: KI für Dummies
Ich würde den Post von Rocco genauer durchlesen 
http://www.adventure-treff.de/forum/vie ... 31#p291231

http://www.adventure-treff.de/forum/vie ... 31#p291231
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: KI für Dummies
Mit einem kleinen "Trick" kann man in AGS ohne weiteres zweidimensionale Arrays benutzen:
Edit:

Wie hier zu sehen hat jedes Feld eine eindeutige 2D-Koordinate, über die man gleich durch einfache Multiplikation die Bildschirmkoordinaten der Feldmitte ausrechnen kann.
Achja: Viel Spass beim Zeichnen der Walkbehinds
Code: Alles auswählen
//header
struct zweidim {
int b[200];
};
//script
zweidim a[200];
...
// Verwendung:
a[34].b[162] = 2;

Wie hier zu sehen hat jedes Feld eine eindeutige 2D-Koordinate, über die man gleich durch einfache Multiplikation die Bildschirmkoordinaten der Feldmitte ausrechnen kann.
Achja: Viel Spass beim Zeichnen der Walkbehinds

Use gopher repellent on funny little man
- DieFüchsin
- Adventure-Gott
- Beiträge: 4411
- Registriert: 12.03.2004, 16:55
Re: KI für Dummies
@perfektopheles: Rocco schrieb aber auch, dass das Modul nicht mehr verfügbar ist.
@KhrisMUC: Danke, dass du mir die Mühe, einen neuen Thread zu erstellen, abgenommen hast und danke für deine schnelle Lösung! Werds gleich heut abend ausprobieren.
Da die Figuren auf dem Feld sehr klein sein werden, werden die Walkbehinds wohl weniger Probleme machen, denke ich.
@KhrisMUC: Danke, dass du mir die Mühe, einen neuen Thread zu erstellen, abgenommen hast und danke für deine schnelle Lösung! Werds gleich heut abend ausprobieren.
Da die Figuren auf dem Feld sehr klein sein werden, werden die Walkbehinds wohl weniger Probleme machen, denke ich.
Danke, Adventuretreff! <3
- DieFüchsin
- Adventure-Gott
- Beiträge: 4411
- Registriert: 12.03.2004, 16:55
Re: KI für Dummies
Es ist wirklich sehr schade - nachdem ich jetzt so lange an der Umsetzung der Pfadfindung gehangen habe, kann ich sie letztendlich doch nicht umsetzen. AGS beschwert sich über zu viel Datenmaterial.
Mein Dank gilt allen, die mir geholfen haben. Ich denke, die Arbeit ist dennoch nicht umsonst gewesen.
Mein Dank gilt allen, die mir geholfen haben. Ich denke, die Arbeit ist dennoch nicht umsonst gewesen.
Danke, Adventuretreff! <3
Re: KI für Dummies
Geht es weger der großen Arrays nicht? Wäre ja sehr schade.
- DieFüchsin
- Adventure-Gott
- Beiträge: 4411
- Registriert: 12.03.2004, 16:55
Re: KI für Dummies
Nach khrismucs Hinweis habe ich alles in diese Arrays gespeichert: a[0].b[0]=1 bis a[107].b[107]=2
doch AGS meldete mir: "stack overflow, attempted grow to 160004 bytes". Was das nun genau bedeutet, weiß ich nicht, aber ich gehe davon aus, dass es einfach zu viel Datenmenge ist.
doch AGS meldete mir: "stack overflow, attempted grow to 160004 bytes". Was das nun genau bedeutet, weiß ich nicht, aber ich gehe davon aus, dass es einfach zu viel Datenmenge ist.
Danke, Adventuretreff! <3