列表

时间:2017-10-21 14:52:49

标签: python python-3.x

哎呀,我现在正在写康威的生命游戏,我已经达到了一个我不知道如何解决的问题。

此处编辑的是我遇到问题的不同列表:

   for repeticiones in range(0,5):
    nuevo_mapa = mapax
    print(mapax)
    if '@' in mapax:
        print('Jell')
    if mapax is mapa_juego:
        print('God')
    for y in range(0,10):
        for x in range(0,10):
            if mapa_juego[y][x] == '@':
                viva_muerta = True
            elif mapa_juego[y][x] == '0':
                viva_muerta = False
            for i in range(0,8):
                try:
                    if mapa_juego[y + check_listy[i]][x + check_listx[i]] == '@':
                        sum += 1
                except IndexError:
                    pass
            if viva_muerta == True and sum in [0,1]:
                    nuevo_mapa[y][x] = '0'
            elif viva_muerta == True and sum >= 4:
                    nuevo_mapa[y][x] = '0'
            elif viva_muerta == True and sum in [2,3]:
                    nuevo_mapa[y][x] = '@'
            elif viva_muerta == False and sum == 3:
                    nuevo_mapa[y][x] = '@'
            sum = 0
    mapa_juego = nuevo_mapa
    print('\n\n')

mapax是一个完整列表0的列表。

我想这样做:

  1. nuevo_mapa = mapax
  2. nuevo_mapa已修改
  3. mapa_juego = nuevo_mapa
  4. 一遍又一遍地开始。 但问题出现在这里,在第一次迭代后,mapax不再是0的完整列表。 输出是这样的(我希望将它们全部发布,因为它非常混乱并且避免混淆)

    >>> [0,0,0,0,0,0,0] First print of mapax
    >>> [0,0,@,0,0,0,0] Second print of mapax and I want to avoid this.
    

    如果您在代码中看到任何内容,请告诉我,谢谢。

    编辑:以下是我遇到问题的不同列表:

        mapa_juego = [
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','@','0','0','0','0','0','0','0',],
    ['0','0','0','@','0','0','0','0','0','0',],
    ['0','@','@','@','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',]
    ]
    mapax = [
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',]
    ]
    

    2编辑:这是完整代码:

        mapa_juego = [
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','@','0','0','0','0','0','0','0',],
    ['0','0','0','@','0','0','0','0','0','0',],
    ['0','@','@','@','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',]
    ]
    mapax = [
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',],
    ['0','0','0','0','0','0','0','0','0','0',]
    ]
    viva_muerta = None
    check_listy = [0,0,1,-1,-1,1,-1,1]
    check_listx = [1,-1,0,0,1,1,-1,-1]
    sum = 0
    #Reglas
    
    # Una célula muerta con exactamente 3 células vecinas vivas "nace" (es decir, al turno siguiente estará viva).
    # Una célula viva con 2 ó 3 células vecinas vivas sigue viva, en otro caso muere o permanece muerta (por "soledad" o "superpoblación").
    # Célula viva = True muerta = False
    # for line in mapa_juego:
    #     print(line)
    
    for repeticiones in range(0,5):
        nuevo_mapa = mapax
        print(mapax)
        if '@' in mapax:
            print('Jell')
        if mapax is mapa_juego:
            print('God')
        for y in range(0,10):
            for x in range(0,10):
                if mapa_juego[y][x] == '@':
                    viva_muerta = True
                elif mapa_juego[y][x] == '0':
                    viva_muerta = False
                for i in range(0,8):
                    try:
                        if mapa_juego[y + check_listy[i]][x + check_listx[i]] == '@':
                            sum += 1
                    except IndexError:
                        pass
                if viva_muerta == True and sum in [0,1]:
                        nuevo_mapa[y][x] = '0'
                elif viva_muerta == True and sum >= 4:
                        nuevo_mapa[y][x] = '0'
                elif viva_muerta == True and sum in [2,3]:
                        nuevo_mapa[y][x] = '@'
                elif viva_muerta == False and sum == 3:
                        nuevo_mapa[y][x] = '@'
                sum = 0
        mapa_juego = nuevo_mapa
        print('\n\n')
    

    编辑3:实际输出

    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    
    
    
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '@', '0', '@', '0', '0', '0', '0', '0', '0']
    ['0', '0', '@', '@', '0', '0', '0', '0', '0', '0']
    ['0', '0', '@', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    God
    
    
    
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '@', '@', '0', '0', '0', '0', '0', '0']
    ['0', '@', '0', '@', '0', '0', '0', '0', '0', '0']
    ['0', '0', '@', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    God
    
    
    
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '@', '@', '0', '0', '0', '0', '0', '0']
    ['0', '@', '0', '@', '0', '0', '0', '0', '0', '0']
    ['0', '0', '@', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    God
    
    
    
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '@', '@', '0', '0', '0', '0', '0', '0']
    ['0', '@', '0', '@', '0', '0', '0', '0', '0', '0']
    ['0', '0', '@', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']
    God
    

0 个答案:

没有答案