KI für Dummies
Re: KI für Dummies
Hilft dir vllt. dieser Post: http://www.bigbluecup.com/yabb/index.php?topic=31330.0
Dort wurde das Array global gemacht und evtl. statt "int" der Datentyp "short" nehmen.
Dort wurde das Array global gemacht und evtl. statt "int" der Datentyp "short" nehmen.
Re: KI für Dummies
Klingt schlüssig. Die Variablen für Funktionen werden im Stack gespeichert.
Grosse Strukturen sollten immer ausserhalb des Stacks gespeichert werden, werte Füchsin. Wenn du das gemacht hast, wird das AGS bestimmt auch nicht mehr meckern, wenn die Array-Größe jenseits der 500 liegt!
Ausserdem ist es besser für die Geschwindigkeit des Programms, wenn das ganze Array nicht bei jedem Funktionsaufruf neu initialisiert wird.
Auch frage ich mich, wie du auf das Array von anderen Funktionen aus zugreifen wolltest, wenn du dieses aber nur innerhalb einer speziellen Funktion definiert hast.
Grosse Strukturen sollten immer ausserhalb des Stacks gespeichert werden, werte Füchsin. Wenn du das gemacht hast, wird das AGS bestimmt auch nicht mehr meckern, wenn die Array-Größe jenseits der 500 liegt!

Auch frage ich mich, wie du auf das Array von anderen Funktionen aus zugreifen wolltest, wenn du dieses aber nur innerhalb einer speziellen Funktion definiert hast.

- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: KI für Dummies
Klar, der Array darf selbstverständlich nicht im Inneren einer Funktion deklariert werden, sondern am Anfang des room scripts.
Ich konnte ohne Probleme einen 200x200er Array erstellen und ihm Werte zuweisen.
Ein Int belegt 4 byte und eine Funktion kann nur 4 kb für Variablen reservieren, deswegen ist bei 1000 Ints schluss.
Ich konnte ohne Probleme einen 200x200er Array erstellen und ihm Werte zuweisen.
Ein Int belegt 4 byte und eine Funktion kann nur 4 kb für Variablen reservieren, deswegen ist bei 1000 Ints schluss.
- DieFüchsin
- Adventure-Gott
- Beiträge: 4411
- Registriert: 12.03.2004, 16:55
Re: KI für Dummies
Hmm dann liegt der Fehler wohl darin, dass ichs in eine der Room-Functions gepackt hab. Wie peinlich 

Danke, Adventuretreff! <3
Re: KI für Dummies
Also bei anderen Programmiersprachen sind es 2 Byte. Ist das bei AGS anders?Ein Int belegt 4 byte
Kommt drauf an wie groß der Stack ist. Und wenn der Stack schon von den aufrufenden Funktionen ziemlich belegt ist, kann noch viel eher Schluss sein.und eine Funktion kann nur 4 kb für Variablen reservieren, deswegen ist bei 1000 Ints schluss.
- DasJan
- Adventure-Treff
- Beiträge: 14683
- Registriert: 17.02.2002, 17:34
- Wohnort: London
- Kontaktdaten:
Re: KI für Dummies
Die 90er sind vorbei, Beowulf.Beowulf hat geschrieben:Also bei anderen Programmiersprachen sind es 2 Byte. Ist das bei AGS anders?Ein Int belegt 4 byte

http://en.wikipedia.org/wiki/Integer_%2 ... type_names
Das Jan
"If you are the smartest person in the room, you are in the wrong room."
-
- Süßwasserpirat
- Beiträge: 344
- Registriert: 26.07.2006, 03:57
- Wohnort: Dresden-Südvorstadt
Re: KI für Dummies
Ein int kann auch 1337 Bytes belegen, das haengt von einer ganzen Reihe von Faktoren ab, unter anderem Prozessor, Betriebssystem, Programmiersprache und Compiler.
I will not be broken, though I am the one that bleeds.
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: KI für Dummies
Tatsächlich....!? Mann, da bin ich aber platt. Hätt ich ja niiiiiiiie gedacht. Was Du alles weißt! Boah!
Achso, wir sind ja im "für Dummies"-thread.
Achso, wir sind ja im "für Dummies"-thread.
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
Im Room-Script habe ich nun folgendes stehen:
und AGS meldet mir beim Test: "unexpected a" 
Code: Alles auswählen
// room script file
int start;
int ziel;
zweidim a[200];
a[0].b[0]=0;
...

Danke, Adventuretreff! <3
- DieFüchsin
- Adventure-Gott
- Beiträge: 4411
- Registriert: 12.03.2004, 16:55
Re: KI für Dummies
Die hab ich in den Global Script Header gesetzt:
Code: Alles auswählen
struct zweidim {
int b[200];
};
Danke, Adventuretreff! <3
Re: KI für Dummies
Im Post vom AGS-Forum stand noch was von "export". Funzt es damit?
- DieFüchsin
- Adventure-Gott
- Beiträge: 4411
- Registriert: 12.03.2004, 16:55
Re: KI für Dummies
Soweit ich weiß, müssen Dinge im Global Script Header nicht exportiert werden, weil sie automatisch in jedem Room-Script stehen. Wenn ich beginne, "a[0]." zu tippen, schlägt mir AGS auch vor, danach b[] einzufügen, es erkennt das gescriptete also an. Nur beim Testlauf danach meint es, a wäre unerwartet.
Danke, Adventuretreff! <3
Re: KI für Dummies
Wo passiert der Fehler denn? Wirklich in dieser Codezeile?
Oder irgendwo anders? Meine telepathischen Fähigkeiten sind etwas eingerostet, daher kann ich dir nicht helfen wenn du nicht mehr Infos schreibst.
Code: Alles auswählen
a[0].b[0]=0;
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: KI für Dummies
Wie jede andere Variable auch müssen bereits deklarierte a[].b[]s innerhalb einer Funktion ihren Wert zugewiesen bekommen.
Also z.B. im before fadein-Event des Raumes.
Also z.B. im before fadein-Event des Raumes.
Use gopher repellent on funny little man