【发布时间】:2023-04-11 05:12:02
【问题描述】:
我对 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,但我遇到的问题更容易通过强制将同一个敌人插入我的“副本”列表中多次来显示。基本上,当我尝试在“复制”列表中减去同名敌人的值时,它们都会减去该值(参见最后两行代码)。我进行了很多搜索,但找不到将单个索引从一个列表复制的方法。有什么建议么?谢谢!
【问题讨论】: