Ich versuche ein 10x10 Raster für eine Karte für ein einfaches textbasiertes Spiel in Python zu erstellen. Ich schaffte es, eine MapTile
Klasse und eine Spielerklasse zu erstellen, die sich um ein (x, y)
Gitter bewegen kann. Ich bin mir jedoch nicht sicher, wie man die Instanzen der Klasse erstellt, um einzelne MapTiles zu haben. Ich habe gelesen, dass es beliebig sein würde, maptile1, maptile2 ... usw. für alle 100 MapTile
s zu erstellen, aber ich kann mir keinen anderen Weg vorstellen.Wie kann ich eine dynamische Instanz einer Klasse für ein textbasiertes Gitter erstellen?
Hier ist, was ich habe!
# This class contains the x and y values for a grid
class MapTile:
def __init__(self, x, y):
self.x = x
self.y = y
# basic char class containing position
class Character:
def __init__(self, name, hp, x, y):
self.name = name
self.hp = hp
self.x = x
self.y = y
# movement func
def Move(self, Direction):
if Direction.upper() == "UP":
if self.y > 1:
self.y -= 1
elif Direction.upper() == "LEFT":
if self.x > 1:
self.x -= 1
elif Direction.upper() == "RIGHT":
if self.x < 10:
self.x += 1
elif Direction.upper() == "DOWN":
if self.y < 10:
self.y += 1
def __str__(self):
return "{}\n========\nHP = {}\nX = {}\nY = {}".format(self.name,
self.hp,
self.x,
self.y)
Lassen Sie mich wissen, wenn ich unklar bin.
Setzen Sie das 10x10-Gitter von 'MapTile'-Instanzen in eine' liste' von 'Listen', die durch' [x] [y] 'indiziert wird, oder ein Wörterbuch, dessen Schlüssel' tuple's von '(x , y) 'Position von jedem. – martineau
Also sollte ich nur eine Instanz haben und die (x, y) -Koordinaten sollten eine Liste von Listen sein? –