Willkommen Gast. Bitte einloggen oder registrieren.
Übersicht Hilfe Suche Einloggen Registrieren

+  BrettspielWelt
|-+  Technische Fragen
| |-+  Puppet-Stuff (Moderator: SLC)
| | |-+  Boolean-Statements-Verknüpfung
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Boolean-Statements-Verknüpfung  (Gelesen 157 mal)
InvisibleMan
Zaubergehilfe
*
Geschlecht: Männlich
Beiträge: 17


Vegetarier essen meinem Essen das Essen weg!

256
Profil anzeigen
« am: 28.02.2006, 23:50:42 »

Ich will bei meinem Puppet testen, ob eine bestimmte Variable einen von bestimmten Werten annimmt.

Nun habe ich folgende Codezeile:

EVAL janein = [abc] == "wxyz" OR [abc] == "defghi" OR [abc] == "jklmn" OR [abc] == "mnop"

IF janein == "TRUE"
>> janein stimmt.
ELSE
>> janein hat einen Fehler hervorgerufen.

(Die Variablen und Namen habe ich geändert)

Nun ist es aber scheinbar egal, was ich für [abc] eingebe:
Ich bekomme immer die Meldung, dass janein FALSE ist.
Das muss irgendwie am "Vergleichs-String" liegen.


Kann mir vielleicht jemand helfen?

PS: Ich habe es auch mit EVAL janein = [abc] INLIST "wxyz defghi jklmn mnop" versucht, das ging aber auch nicht.
Gespeichert
Kugelschreiber
Zaubermeister
*****
Geschlecht: Männlich
Beiträge: 1195



Profil anzeigen
« Antworten #1 am: 01.03.2006, 00:06:57 »

Hallo Invisible,

aufgrund deines Eintrags vom 28.02.2006 um 23:13:38 habe ich mir erlaubt, meinen Eintrag rückwirkend ein wenig zu kürzen.

Ich wünsche dir noch viel Glück und gutes Gelingen bei deinen Bestrebungen um die Puppet-Programmierung.

Gruss vom Kugelschreiber
« Letzte Änderung: 01.03.2006, 20:10:49 von Kugelschreiber » Gespeichert
InvisibleMan
Zaubergehilfe
*
Geschlecht: Männlich
Beiträge: 17


Vegetarier essen meinem Essen das Essen weg!

256
Profil anzeigen
« Antworten #2 am: 01.03.2006, 02:13:38 »

Ich glaube, du hast den Sinn nicht verstanden...
Ich will nicht wissen, ob fuer jedes einzelne janein TRUE oder FALSE ist, davon haette ich keinen Nutzen. Ich will vielmehr ueberpruefen, ob [abc] in der Liste von vorgegebenen Namen drinnen ist und, wenn dem nicht so ist, eine Nachricht abschicken. Sonst kann mit [abc] weitergearbeitet werden.
Das ganze soll also ueberpruefen, ob man [abc] richtig geschrieben hat oder ob es [abc] ueberhaupt gibt (In der unveraenderbaren Liste an Namen).
Gespeichert
Sequoia
Zauberlehrling
**
Geschlecht: Weiblich
Beiträge: 68


Smile . . . tomorrow will be worse. (The Murphy Philosophy)


Profil anzeigen WWW
« Antworten #3 am: 01.03.2006, 20:14:44 »

Zitat
IF janein == "TRUE"
>> janein stimmt.

Du solltest janein aber schon auswerten: IF [janein] == "TRUE"

Ausserdem schreibt man da nur IF [janein]
(bei FALSE mag das etwas anders aussehen, da leider nicht alles, was nicht TRUE ist, automatisch FALSE ist  Angry )

Und warum geht
Code:
EVAL janein = [abc] INLIST "wxyz defghi jklmn mnop"
nicht?

seq
Gespeichert
DoD
Zaubermeister
*****
Geschlecht: Männlich
Beiträge: 885



Profil anzeigen WWW
« Antworten #4 am: 01.03.2006, 21:38:49 »

Zitat

Nun habe ich folgende Codezeile:

EVAL janein = [abc] == "wxyz" OR [abc] == "defghi" OR [abc] == "jklmn" OR [abc] == "mnop"

IF janein == "TRUE"
>> janein stimmt.
ELSE
>> janein hat einen Fehler hervorgerufen.


PS: Ich habe es auch mit EVAL janein = [abc] INLIST "wxyz defghi jklmn mnop" versucht, das ging aber auch nicht.


Hallo,

IMHO wäre folgender Code sauberer und auch verständlicher:

Code:

IF([abc] INLIST "wxyz defghi jklmn mnop")
>> ist drin
ELSE
>> ist nicht drin


Eventuell ist die Ursache für die scheinbar falschen Werte in janein bei deiner Variante auch ein Problem mit der Reihenfolge der Abarbeitung:

EVAL janein = [abc] INLIST "wxyz defghi jklmn mnop"
--> EVAL janein = [abc] --> ?irgendwas? INLIST "wxyz defghi jklmn mnop" --> kannst dir ja spasseshalber mal den Wert von janein anzeigen lassen, wer weiss was da drin steht Wink

Tschau,
DoD

PS: Klammern sind dein Freund - ich weiss zwar nicht, ob die Puppetsprache die Klammern wirklich verarbeitet, aber es erleichtert das Codelesen ungemein, wenn man vernünftig Klammern setzt.
Gespeichert

InvisibleMan
Zaubergehilfe
*
Geschlecht: Männlich
Beiträge: 17


Vegetarier essen meinem Essen das Essen weg!

256
Profil anzeigen
« Antworten #5 am: 02.03.2006, 01:00:03 »

Zitat

Du solltest janein aber schon auswerten: IF [janein] == "TRUE"


Lol ich Depp...

Danke Sequoia, daran wirds liegen.

INLIST Funktioniert logischerweise nicht, weil ich das IF-Statement falsch habe; deshalb kann janein so oder so nicht ausgewertet werden.


Vielen Dank, Frage beantwortet, kann geclosed werden.
Gespeichert
SLC
Magier
*****
Geschlecht: Männlich
Beiträge: 14510


Ich heiße SLC, komme aus Hamburg und spiele gern (wer denn nicht?)

SLC_BSW
Profil anzeigen WWW
« Antworten #6 am: 02.03.2006, 14:57:01 »

Moin!

Bin etwas verwirrt von den Beiträgen, muß Sequoia aber recht geben:

Zitat
Und warum geht
Code:
EVAL janein = [abc] INLIST "wxyz defghi jklmn mnop"
nicht?

bzw.

IF [abc] INLIST "wxyz defghi jklmn mnop"
 >> Ist drin.
ELSE
 >> Ist nicht drin.

Außerdem sollte man immer klammern, um Mißverständnisse zu vermeiden:

EVAL janein = ( ... ) OR ( ... ) OR ( ... )

Und "== TRUE" vermeiden:

IF [janein]
 >> Ja.
ELSE
 >> Nein.

[janein] *IST* bereits ein Wahrheitswert (den IF braucht)...

Grüße, SLC
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.15 | SMF © 2006-2009, Simple Machines
SMFAds for Free Forums
Prüfe XHTML 1.0 Prüfe CSS