Python 3 Kezdo vagyok a programozasban es nagyon elakadtam egy resznel. Orommel vennek epito jellegu segitseget. Ez a pelda jobban le tudja irni a dolgot, mint en. A gond az utolso sornal jelentkezik. Esetleg valami spec. Builtin-re lenne szuksegem?
import time
class Player:
def __init__(self):
self.location = 'a2'
class Zonemap:
def __init__(self, name, opt, descr, solved):
self.name = name
self.opt = opt
self.descr = descr
self.solved = solved
my_player = Player()
a1 = Zonemap('Entrance', ('a2', '', '', '', '', ''), 'Description of the Entrance', False)
a2 = Zonemap('Stairs', ('a3', 'a1', '', '', '', ''), 'Description of the Stairs', False)
a3 = Zonemap('Corridor', ('a4', 'a2', 'a7', '', '', ''), 'Corridor descr.', False)
flat1 = (a1, a2, a3)
print(f"My player's location is: {my_player.location}")
print(f'This would be the destination when I go north: {flat1[1].opt[0]}')
print(f"So I tried to work myself up to the point: {flat1[flat1.index(a2)].opt[0]}")
print(f"But I get this error message at the next step:\nValueError: tuple.index(x): x not in tuple\nAnd I have no idea "
f"why. The value of my_player.location is still a2.")
time.sleep(5)
print(flat1[flat1.index(my_player.location)].opt[0])
Igy sikerult megoldanom:
Az a2 erteket akartam a mindig aktualis my_player.location-re lecserelni.
Ket extra sorral tudtam csak megoldani, de biztos vagyok benne, hogy van ettol elegansabb megoldas is, csak meg az en tudasom keves hozza. De mar igy is orulok, hogy osszejott. Most mar be tudom jarni az egesz terkepet, az osszes egtaj megfeleloen mukodik. A kovetkezo lepes, hogy ha a Zonemap .opt tuple eleme '', akkor kiirja, hogy: "Nem mehetsz arra.", de az mar gyerekjatek lesz ez utan.
Amugy tokeletesen ertelmeztel mindent. Tudtam, hogy egy par soros progi jobban le tudja irni a problemamat, mint en szavakkal.
Persze, nem kiiratni akarom, csak egyszerubb volt igy a pelda, mert a progi maga mar 300 sor folott jar, raadasul mappakra es fajlokra felosztva es igy is mindig belegabalyodok az import, meg global cuccokba. Kicsit lehet, hogy nagy faba vagtam a fejszemet kezdo letemre, de baromira elvezem.
a1 = Zonemap('Entrance', ('a2', '', '', '', '', ''), 'Description of the Entrance', False)
Ebbol ('a2', '', '', '', '', '') az eszak, del, kelet, nyugat, fel, le opcioi. Itt tehat, a1 rol csak eszakra lehet majd menni, azaz a2-re.
Koszi a brainstorming-ot.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!