Strings in Listen
Verfasst: Montag 29. März 2021, 12:10
Hallo Leute,
ich suche eine Lösung, wie ich in einer Liste innerhalb eines Strings einen einzelnen Buchstaben austauschen kann.
Ich will mir (nur zum lernen von Python) eine Boulder-Dash Version basteln - sieht auch schon cool aus. Ich hab die Levels
einfach mal als Liste mit je einem String pro Zeile gestaltet (auch das ist vielleicht nicht die beste Methode, aber is ja auch nur zum üben).
sieht in etwa so aus:
levelA1 = ["WWWWWWWWWWWWWWWWWWWW",
"W..........wd......W",
"W....rxr .w.d.....W",
"W.... d . w..d....W",
"W.... r ...w...d...W",
"W. d ..rdrrwwwwwW",
"W.... .r.rrrrr.....W",
"Wwww. ..d.........pW",
"W...rrrrd..d.......W",
"Wdd.....r......r...W",
"WWWWWWWWWWWWWWWWWWWW"]
Wie könnte ich im 3. String das "r" durch ein Leerzeichen tauschen und dafür eine Zeile drunter wieder einsetzen ? (ist dann ein Stein, der fällt.
Das Darstellen des Levels über eine schleife funktioniert eigentlich so ganz gut - nur für das Austauschen hab ich noch nix gefunden...
def erstdarstellung_Spielfeld():
for y in range (hoehe):
for x in range(breite):
#print (x, y)
string = levelA1[y]
if string[x] == "W":
put = wall
elif string[x] == ".":
put = mud
elif string[x] == "r":
put = boulder
elif string[x] == "d":
put = diamond
elif string[x] == "x":
put = rockford
elif string[x] == "p":
put = ausgang
elif string[x] == " ":
put = leer
elif string[x] == "w":
put = levelwall
llabel = Label(levelframe, image = put, padx = "0", pady = "0", borderwidth = "0").grid(row = y+1, column = x, sticky = "nsew")
ich suche eine Lösung, wie ich in einer Liste innerhalb eines Strings einen einzelnen Buchstaben austauschen kann.
Ich will mir (nur zum lernen von Python) eine Boulder-Dash Version basteln - sieht auch schon cool aus. Ich hab die Levels
einfach mal als Liste mit je einem String pro Zeile gestaltet (auch das ist vielleicht nicht die beste Methode, aber is ja auch nur zum üben).
sieht in etwa so aus:
levelA1 = ["WWWWWWWWWWWWWWWWWWWW",
"W..........wd......W",
"W....rxr .w.d.....W",
"W.... d . w..d....W",
"W.... r ...w...d...W",
"W. d ..rdrrwwwwwW",
"W.... .r.rrrrr.....W",
"Wwww. ..d.........pW",
"W...rrrrd..d.......W",
"Wdd.....r......r...W",
"WWWWWWWWWWWWWWWWWWWW"]
Wie könnte ich im 3. String das "r" durch ein Leerzeichen tauschen und dafür eine Zeile drunter wieder einsetzen ? (ist dann ein Stein, der fällt.
Das Darstellen des Levels über eine schleife funktioniert eigentlich so ganz gut - nur für das Austauschen hab ich noch nix gefunden...
def erstdarstellung_Spielfeld():
for y in range (hoehe):
for x in range(breite):
#print (x, y)
string = levelA1[y]
if string[x] == "W":
put = wall
elif string[x] == ".":
put = mud
elif string[x] == "r":
put = boulder
elif string[x] == "d":
put = diamond
elif string[x] == "x":
put = rockford
elif string[x] == "p":
put = ausgang
elif string[x] == " ":
put = leer
elif string[x] == "w":
put = levelwall
llabel = Label(levelframe, image = put, padx = "0", pady = "0", borderwidth = "0").grid(row = y+1, column = x, sticky = "nsew")