| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Sep 2004
Beiträge: 5
| Frage zu einem Problem
Liebe Leute, ich bin seit gestern bei diesem Forum angemeldet und habe beim Stöbern auch schon viel Interessantes endeckt. Vielen Dank. Ich kämpfe mit einem Problem. Für einen Freund (Psychotherapeut) programmiere ich in Flash5 ein Program das auf dem Programm ELIZA von J. Weizenbaum aus den 60er Jahren (!) basiert. Der User gibt eine Frage ein und der "Doktor" antwortet. Es entsteht so scheinbar ein Dialog, da das Programm in der Frage des Users nach Schlüsselworten sucht und daraus eine Antwort bastelt. Die string-operationen funktionieren alle, aber in der while Schleife funkts nicht, der Computer hängt sich immer auf. Der Code des buttons: on (release) { work=pat; l=work.length; m=0; while (l>1){ e=work.indexOf(" "); s=work.slice(0, e); work=work.substring(e+1, m); l=work.length; if (s==k[i]) {m=i}; } //hier folgt der Antwortteil if (s==k[0]) {doc="Fühlst Du dich oft "+s+" ?"} else{doc="Tja ich weiß nicht. "+s}; } pat = Texteingabe des Users (PATient) doc = Antwort des "Doktors" k= Array der Schlüsselworte (key) k[1]= "einsam" Wie gesagt, die Schleife funktioniert noch nicht. der Antwortteil ist noch nicht ausprogrammiert. Ich wäre dankbar wenn mir jemand einen Tipp geben könnt, was da nicht funktioniert. |
| | |
| | #2 (permalink) |
| Gast
Beiträge: n/a
|
while-Schleifen in Flash sind immer sehr gefährlich, denn wenn du mehr als 255 Verschachtelungstiefen erreichst, hängt sich der Film auf. Versuchs mal mit einer for-Schleife... Außerdem solltest du dir deine Variablenzustände unbedingt über traces im Testmodus ausgeben lassen, damit du mehr Kontrolle über das Script hast. Geändert von agedoubleju (25-09-2004 um 16:11 Uhr) |
|
| | #4 (permalink) |
| a.k.a maddin79 Registriert seit: Jul 2003 Ort: berlin f-hain
Beiträge: 1.693
|
@ AW: das stimmt doch überhaupt nicht !!! selbst das geht noch: PHP-Code: also mal nix durcheinander bringen, dies hat mit dem problem nichts zu tun. übrigens sind while schleifen im grunde genau dasselbe wie for schleifen, da ist auch nichts gefährliches dran sie zu benutzen. man sollte natürlich darauf achten KEINE endlosschleifen zu produzieren. @farglos, wahrscheinlich ist bei dir l niemals < 1 und deshalb bricht deine schleife nicht ab. kontrolliere dies nochmal
__________________ |
| | |
| | #6 (permalink) |
| a.k.a maddin79 Registriert seit: Jul 2003 Ort: berlin f-hain
Beiträge: 1.693
|
mit meinem beispiel wollte ich dir nur zeigen, daß ne while schleife ÜBERHAUPT nichts mit rekursion zu tun hat und deshalb NICHT auf 255 durchläufe begrenzt ist. deshalb zähle ich "nur" die variable hoch. in dem beispiel von fraglos gibt es ebenfalls KEINE rekursion, sondern lediglich ein while-schleife, deren abruchbedingung anscheinend NIE eintritt. deshalb bricht bei ihm das script ab. @fraglos: wo definiertst du bitte i ??? und was passiert wenn er kein " " findet?? frag das lieber mal ab.
__________________ |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |