Python оценивает or
, прежде чем он оценивает and
- это означает, что он читает ваше утверждение как «если грязь равна 1 и строка соответствует грязи и огню, true. Или, если строка соответствует огнюи грязь, правда. "
Вы можете обойти это, правильно разделив ваши утверждения с круглыми скобками:
elif(mud == 1 and (game_select == 'Mud + Fire' or game_select == 'Fire + Mud')):
do something
Это читается как" если грязь один, и строка соответствует огонь игрязь или грязь и огонь, правда. "