Библиотечный тактик. Последняя строка в коде

Не мог бы кто-нибудь объяснить почему команда, управляющая лучниками должна отличаться от команды, управляющей солдатами?
Последней строчки в коде к этому уровню я указал commandArcher(archer, i, len(archers)), т.е. с теми же тремя аргументами в круглых скобках как и в цикле for для солдат commandSoldier(soldier, i, len(soldiers)); , а надо было просто commandArcher(archer) Почему в команде commandArcher() нельзя указывать три аргумента как в команде commandSoldier(soldier, i, len(soldiers))?

    # Создай переменную, указывающую на твоих лучников.
    
    for i in range(len(soldiers)):
        soldier = soldiers[i]
        commandSoldier(soldier, i, len(soldiers));
    # используй функцию `commandArcher()` для управления своими лучниками
    for i in range(len(archers)):
        archer = archers[i]
        commandArcher(archer, i, len(archers));