Пытаюсь изменить значение изнутри функции, но оно не меняется при выходе из функцииPython

Программы на Python
Anonymous
Пытаюсь изменить значение изнутри функции, но оно не меняется при выходе из функции

Сообщение Anonymous »

Пытаюсь создать простую игру про покемонов, но переключение не работает.
При попытке переключить покемона я могу получить код, распознающий, что activePlayerMon= имел переключение значений при запуске через параметр switchOption( ) функция, но как только отладчик покидает функцию, он возвращается к исходному значению, когда вам впервые предлагается выбрать Mon

Код: Выделить всё

def fight(playerlist, computerlist):
print('\n',playerlist[1].name,'\n',playerlist[2].name,'\n',playerlist[3].name,'\n')
initFight = int(input('Choose your starting Pokemon\n'))
playerlist[int(initFight)].fightPrompt(computerlist[1])

activePlayerMon = playerlist[initFight]
activeComputerMon = computerlist[1]

def switchOption(determine_user):
global activePlayerMon, activeComputerMon
if determine_user == 1:
print('\n',playerlist[1].name,'\n',playerlist[2].name,'\n',playerlist[3].name,'\n')
changeMon = int(input('Choose who you\'d like to switch to'))
activePlayerMon = playerlist[changeMon]
elif determine_user == 0:
changeMon = randint(1,3)
activeComputerMon = computerlist[changeMon]

while playerlist[1].HP != 0 and playerlist[2].HP != 0 and playerlist[3].HP != 0 or computerlist[1].HP != 0 and computerlist[2].HP != 0 and computerlist[3].HP != 0:
print('\n',activePlayerMon.name,'- \n',activePlayerMon.HP,'\ ',activePlayerMon.MHP,'\n',activeComputerMon.name,'- \n',activeComputerMon.HP,'\ ',activeComputerMon.MHP,'\n')
fightOption = int(input('Would you like to-\n  1. Fight\n  2. Heal\n  3. Switch\n'))
if fightOption == 1:
>
elif fightOption == 2:
>

elif fightOption == 3:
switchOption(1)
Я попробовал вариант, в котором функция switchOption() находится вне функции Fight(), используя аргументы для playerList[] и activePlayerMon=, но получилось то же самое.У меня также была версия, которая была жестко запрограммирована для работы только с игроком, но была ориентирована на стратегию, чтобы упростить кодирование для компьютера.
Я понимаю, что большая часть кода неоптимизирована, но я действительно застрял на том, чтобы сделать эту работу модульной.
Короче, как мне сделать так, чтобы при переключении значения activePlayerMon внутри функцию switchOption(), она сохраняет изменения, а не просто возвращается к старому значению?
Я готов загрузить файлы на GitHub, если это будет необходимо

Подробнее здесь: https://stackoverflow.com/questions/788 ... when-i-exi

Вернуться в «Python»