Я довольно новичок в python и пытаюсь ухватиться за веревки, и решил, что интересный способ научиться - сделать игру типа MUD.Моя цель для фрагмента кода, который я собираюсь показать, состоит в том, чтобы три случайно выбранных врага (из списка) были представлены для «героя», чтобы сражаться.Проблема, с которой я сталкиваюсь, заключается в том, что python копирует из списка в список по ссылке, а не по значению (я думаю), из-за кода, показанного ниже ...
import random
#ene = [HP,MAXHP,loDMG,hiDMG]
enemies = [[8,8,1,5,"Ene1"],[9,9,3,6,"Ene2"],[15,15,2,8,"Ene3"]]
genENE = []
#skews # of ene's to be gen, favoring 1,2, and 3
eneAppears = 3
for i in range(0,eneAppears):
num = random.randint(5,5)
if num <= 5:
genENE.insert(i,enemies[0])
elif num >= 6 and num <=8:
genENE.insert(i,enemies[1])
else:
genENE.insert(i,enemies[2])
#genENE = [[8,8,1,5,"Ene1"],[9,9,3,6,"Ene2"],[15,15,2,8,"Ene3"]]
for i in range(0,eneAppears):
if eneAppears == 1:
print "A " + genENE[0][4] + " appears!"
else:
while i < eneAppears:
print "A " + genENE[i][4] + " appears!"
i = eneAppears
genENE[1][0] = genENE[1][0] - 1
print genENE
В основном у меня есть "мастер"список врагов, которые я использую, чтобы скопировать того, кого я хочу, в индекс другого списка во время моего первого цикла «for».Обычно случайно сгенерированные числа от 1 до 10, но проблема, с которой я сталкиваюсь, легче показать, заставив одного и того же врага быть вставленным в мой список «копирования» несколько раз.В основном, когда я пытаюсь вычесть значение врага с тем же именем из моего списка «копирования», они все вычитают это значение (см. Последние две строки кода).Я провел большой поиск и не могу найти способ скопировать только один индекс из одного списка в другой.Какие-либо предложения?Спасибо!