鱼C论坛

 找回密码
 立即注册
查看: 621|回复: 1

[已解决]检测列表中任意2个变量

[复制链接]
发表于 2020-6-17 16:50:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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。
大佬们来个思路就好。
最佳答案
2020-6-17 17:01:07


这样应该可以的:
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-17 17:01:07 | 显示全部楼层    本楼为最佳答案   


这样应该可以的:
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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 15:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表