|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在写乌龟吃鱼那题的时候,有个想法,我想加个“繁殖”,当有2条鱼遇到一起,就会随机在多生一个项。
fish=[]
while len(fish)<=9:
fish.append([random.randint(0,10),random.randint(0,10)])
def fish_move(fish):
global d
for i in fish:
c=[i[0]+random.randint(-1,1),i[1]+random.randint(-1,1)]
if 0<=c[0]<=10 and 0<=c[1]<=10:
d.append(c)
else:
d=[]
fish_move(fish)
return d
我写的鱼的生成和运动,红的是生成结果。
[[9, 0], [10, 3], [7, 3], [2, 5], [4, 6], [2, 10], [8, 3], [3, 5], [0, 1], [4, 2]]
def breed(d):
for i in d:
if d.count(i)==2:
new=[random.randint(0,10),random.randint(0,10)]
d.append(new)
print('a new fish is born at'+str(new))
return d
然后我用count()就可以加上“繁殖”功能。
但我这时候想要,让2条鱼相距是1的时候就可以繁殖。x轴相等,y相差1,反之。
所以来问题了,怎么在列表里定义2个变量,就是在for i in list1,下再定义一个不是i的变量g,检测i是否与g,在【0】,【1】位数字上差1。
大佬们来个思路就好。
这样应该可以的:
def breed(d):
for i in range(len(d)): # 循环鱼位置
for i2 in range(i+1,len(d)): # 遍历循环下一个鱼位置
if d[i][0] == d[i2][0]: # 判断x 轴是否相等
if abs(d[i][1] - d[i2][1]) == 1: # 判断他们 y 轴差的绝对值是否为 1 若是 繁殖小鱼
new=[random.randint(0,10),random.randint(0,10)]
d.append(new)
print('a new fish is born at'+str(new))
return d
|
|