Ich habe es nur so hinbekommen:
Code: Alles auswählen
if (duellant_1.aufsteiger or duellant_2.aufsteiger) and not (duellant_1.aufsteiger and duellant_2.aufsteiger):
Code: Alles auswählen
if (duellant_1.aufsteiger or duellant_2.aufsteiger) and not (duellant_1.aufsteiger and duellant_2.aufsteiger):
Code: Alles auswählen
d1 | d2 | xor
-------------------
F | F | F
T | F | T
F | T | T
T | T | F
Code: Alles auswählen
if duellant_1.aufsteiger != duellant_2.aufsteiger:
Code: Alles auswählen
In [8]: for p, q in itertools.product((True, False), repeat=2):
...: print(f"{p} ^ {q}: {p^q}")
...:
True ^ True: False
True ^ False: True
False ^ True: True
False ^ False: False
In [9]: for p, q in itertools.product((True, False), repeat=2):
...: print(f"({p} or {q}) and not ({p} and {q}): {(p or q) and not (p and q)}")
...:
(True or True) and not (True and True): False
(True or False) and not (True and False): True
(False or True) and not (False and True): True
(False or False) and not (False and False): False
In [10]: for p, q in itertools.product((True, False), repeat=2):
...: print(f"{p} {q}:", ((p or q) and not (p and q)) == p ^ q)
...:
True True: True
True False: True
False True: True
False False: True
Stimmt, müsste eigentlich auch funktionieren - muss ich mal drüber hirnen (oder ausprobieren).pillmuncher hat geschrieben: Freitag 9. August 2024, 18:44 [/code]Wenn es sicher ist, dass du xor verwenden möchtest und dass die d.aufsteiger immer bool sind, kannst du einfach das hier benutzen:Code: Alles auswählen
if duellant_1.aufsteiger != duellant_2.aufsteiger: