我正在尝试修改一个模拟康威生活游戏版本的 python 脚本。其中 X 列和 Y 行中的一组单元各自被赋予一个值,该值确定它们是否将根据其邻居的状态在活动或休眠两种状态之间切换。
现在,这些单元格的初始值由该定义定义,该定义引用了用户设置的许多变量。(这不是完整的脚本,只是我认为相关的)
def randomizeArray(intLength,intWidth):
arr = []
for j in range(intWidth):
arri = []
for i in range(intLength):
rnd =random.random()
arri.append(rnd)
arr.append(arri)
print rnd
return arr
def Main():
intLength = rs.GetInteger("how many in x",30)
intWidth = rs.GetInteger("how many in y",30)
intGen = rs.GetInteger("how many generations",40)
strStack = rs.GetString ("should I stack the generations", "yes", ["yes", "no"])
crvs = rs.GetObjects("select the crvs",4)
thres = rs.GetReal("type the threshold to voxelize",1)
allValues = []
arrValues = randomizeArray(intLength,intWidth)
for i in range(40):
arrValues = applyGOL(arrValues)
allValues.append(arrValues)
#arrMeshes = render(arrValues,-1, strStack)
for i in range(intGen-1):
arrValues = applyGOLCrvs(arrValues, i, crvs)
allValues.append(arrValues)
"""
if strStack == "no" :
update(arrMeshes, arrValues)
else :
render(arrValues,i, strStack)
"""
myVoxels = voxels(intLength,intWidth,intGen, allValues)
myVoxels.voxelize(thres)
#Call DeleteObjects2dArray(arrMeshes)
Main()
我想做的是用我可以自己设置的值的 .txt 文件替换 random.random 函数。
这是我到目前为止想出的
def selectedArray(intLength,intWidth):
arr = []
for j in range(intWidth):
arri = []
for i in range(intLength):
selected = open('C:\Users\IAmADog\Documents\Thesis\Scripts\ArrayValues2.txt','r')
lines = selected.read().split(',')
arri.append(lines)
arr.append(arri)
return arr
但是,当它运行它给我一个错误说“消息:不支持的操作数类型为+:'int'和'list'”
.txt 文件是这样设置的 [.1,.1,.9,.9,.... etc]
关于为什么会发生这种情况的任何建议?完整的代码可以在这里找到。https://stackoverflow.com/questions/22138217/assistance-with-python-gol-script