0

私は現在、ライフゲームをコードで実装しようとしているので、ウィンドウのサイズに応じて座標を生成する関数を作成しました。

def coords_maker(num_x, num_y):

    num_x += 1  
    num_y += 1  
    coords = []
    for i in range (0,num_y, 1):    
        for n in range (0,num_x,1):
            coords.append ('x'+str(n)+'y'+str(i))   
    return coords

それでも、結果の文字列にランダムに値を割り当てて、それらを生きている(1)または死んでいる(0)としてマークしたいと思います。ただし、文字列を私が知っている変数名に変換する唯一の方法は、dictとvar()を使用することですが、それ以降のコードでは、座標を並べ替えたままにすることが不可欠です。アイテムを注文し、座標名に従ってカーソルを置きます。何かのようなもの:

print ('\033['+X_COORD+';'+Y_COORD+'f'+ x1y5) 

たとえば、x1y5が変数の対応する値(0または1)である場合

dictを介してこれを行う方法、または文字列の名前を変数名に変換する方法の便利な方法はありますか?またはおそらく。1つのdictと1つのリストを保持し、座標名をリストに保存し、値をdictに保存するとどうなりますか?

前もって感謝します!キリル

4

1 に答える 1

1

辞書を使用します:

def coords_maker(num_x, num_y):

    num_x += 1  
    num_y += 1  
    coords = {}
    for i in range (0,num_y, 1):    
        for n in range (0,num_x,1):
            coords['x'+str(n)+'y'+str(i)] = 0
    return coords

次に、で値にアクセスします

 coords[x][y]

そしてそれを次のように変更します:

 coords[x][y] = 1

もちろん、この座標から文字列への変換は完全に無意味です。リストのリストを使用するだけです。

def coords_maker(num_x, num_y):

    num_x += 1  
    num_y += 1  
    coords = [[0]*num_x for x in range(num_y)]
    return coords

また、なぜ座標に1を追加するのかわかりません。

def coords_maker(num_x, num_y):
    return [[0]*num_x for x in range(num_y)]
于 2012-06-20T15:28:08.983 に答える