Guten Abend!
Ich sitze gerade an einem Spiel und habe ein Problem, wenn man es so nennen will.
Es funktioniert zwar bis jetzt alles einwandfrei, aber ich verstehe nicht warum ^^
Folgendes:
Delphi-Quellcode:
if (sel <> (117 AND -1) then
if ( (i AND j) in [0..7] ) then
[...]
Wenn angenommen
(sel = -1) ist, dann ergibt die erste Abfrage true. (sollte false sein)
Wenn
i oder
j z.B. 10 ist, dann ergibt auch die zweite Abfrage true. (sollte ebenfalls false sein)
Das verstehe ich nicht so ganz, denn wenn ich schreibe
Delphi-Quellcode:
if (sel <> (117 OR -1) then
if ( (i OR j) in [0..7] ) then
bzw.
Delphi-Quellcode:
if (sel <> 117) AND (sel <> -1) then
if ( (i in [0..7]) AND (j in [0..7])) then
funktioniert es.
Habe ich da jetzt einen Denkfehler?
Kann mir mal bitte jemand erklären, warum
(sel <> (117 AND -1)) nicht das gleiche ist wie
(sel <> 117) AND (sel <> -1) ??
Meines Erachtens darf
sel in beiden Fällen nicht 117 UND nicht -1 sein, um die gesamte Aussage auf true zu setzen.
Und bei
(sel <> (117 OR -1)) muss doch theoretisch nur eine Bedinung erfüllt sein: Also wenn
(sel = -1) ist, ist
(sel <> 117) immer noch erfüllt und durch das
OR wird die Aussage wahr, oder nicht?
So denke ich das jedenfalls, aber anscheinend habe ich da irgendwo einen Denkfehler drin, den ich im Moment nicht finde!
Bitte um Aufklärung
Stanley F.
Wenn alles gut zu gehen scheint, hast Du sicher etwas vergessen.