@Archpriest_of_Fate

Чек всех элементов из списка в python?

Господа, есть вопрос. Я сейчас работаю над рогуэлайком, и в целях введения политики и меняющихся фракционных взаимоотношений возникла необходимость переписать ИИ таким образом, чтобы каждый его обладатель выбирал целью представителей листа вражеских фракций. Листы прописаны в глобалках и имеют вид типа:

faction_2_enemies = [1, 4, 5]

И вот теперь собственно вопрос - как сделать чек, который будет проверять соответствие фракции цели и фракций из листа? Вот пример одного из текущих чеков:

for target in global_objects:
                if thinker.distance_to(target) <= 4 and thinker.party and target.party and 
                thinker.party.p_min_wparty == True and target.party.p_faction == 3 and 
                thinker.party.p_faction == 1 and target.party.fight_stance ==  None 
                and action_per_turn == 0:


И необходимо, чтобы чек target.party.p_faction == 3 сравнивал фракцию цели не с 3, а с листом faction_2_enemies, притом как можно более рационально.

Спасибо за ответ.
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 2
tema_sun
@tema_sun
Ну так и сравнивайте:
target.party.p_faction in faction_2_enemies

В чем проблема-то?
Ответ написан
Комментировать
dimonchik2013
@dimonchik2013
non progredi est regredi
если чо, красивше писать
if  all([thinker.distance_to(target) <= 4,...,action_per_turn == 0])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы