私は現在、純粋な python でテキストベースの冒険をコーディングしようとしています。したがって、次のような(短縮された)Roomクラスがあります。
class Room1(Room):
def __init__(self):
Room.__init__(self)
self.init_objects()
self.description = """Looks like a living room. There's a lamp, a
cupboard, and
a door to your right. On the floor, there's a carpet."""
self.door_state = 1
self.carpet_state = 0
self.images = [(text-based images)]
def init_objects(self):
self.objects = {"door" : Door1(),
"frontdoor" : FrontDoor(),
"carpet" : Carpet(),
"lamp" : Lamp1(),
"clock" : Clock(),
"escritoire" : Escritoire(),
"booklet" : Booklet(),
"screws" : Screws(),
"trapdoor" : TrapDoor()}
def update_image(self):
IMG_MAPPER = {(0, 0, 0) : 0,
(0, 0, 1) : 1,
(1, 0, 0) : 2,
(1, 0, 1) : 3,
(1, 1, 1) : 4,
(1, 1, 0) : 5,
(0, 1, 1) : 6,
(0, 1, 0) : 7}
key = (self.objects["door"].state, self.objects["carpet"].state)
self.img = img_mapper[key]
私の問題は、Room の update_image() メソッドにあります。オブジェクトの状態 (開いている/閉じている) に応じて適切な画像を把握するために、そこにマッパーを格納する必要があります。メソッドの開始時にこのマッパーを配置すると、メソッドが実行されるたびに、Python によってこの dict が読み取られて構築されます。という、そうですか。では、このマッパー dict を self.img_mapper_dict = {(0, 0, 0) : 0, ...} のようなインスタンス変数として保存する必要がありますか?
その誰かについてのアイデアはありますか?