私はPythonでいくつかのOOPを理解しようとしていますが、いくつかの問題が発生しています。各部屋が Room クラスのインスタンスである部屋のグリッドを歩き回るプレイヤーを含む「ゲーム」を作成しようとしています。大きなグリッドを作成したい場合、各部屋のインスタンス化は、64 の異なる部屋に対して同じ反復座標パターンを入力しなければならない可能性があるため、面倒です。そのため、それを行う関数を作成したかったのです。方法を理解するのに問題が発生しています。ここに私が持っているコードがあります:
class Room(object):
def __init__(self, x, y):
self.x = x
self.y = y
def generate_rooms():
names = [a,b,c,d]
locations = [[1,1],[1,2],[2,1],[2,2]] #this line could be a few for loops
for x in range(0,4):
names[x] = Room(locations[x][0],locations[x][1])
これにより、場所で指定された座標を使用して、a、b、c、および d という名前の 4 つの部屋が作成されるという考えでした。a、b、c、および d が定義されていないため、Python ではこれを実行できません。私が試したどの実装でも、インスタンスの命名には変数名を使用する必要があるという問題に遭遇しましたが、それらを動的に生成する方法がわかりません。
私は多くのことを検索しましたが、インスタンス化の自動化が実際に人々がやりたいことであるようには思えません。
これを修正する方法、またはこのタスクをより良い方法で達成する方法についてのヘルプは大歓迎です!