Я работаю над текстовым приключением как школьным проектом на python 3.6.Код должен позволить вам «смотреть» в разных направлениях, в зависимости от того, откуда вы пришли.Программа аварийно завершает работу, когда вход является одним и тем же 3 раза подряд, и я понятия не имею, почему.Кроме того, направление, с которым я сталкиваюсь, не меняется последовательно.В большинстве случаев это работает, но в некоторых случаях это не так.
Надеюсь, я никого не смутил, но я из Германии, поэтому вот несколько переводов:
raum =room
oben = вверх
unten = down
Я пытался вставить строку ввода между ними, чтобы разорвать цепь.
class Place(object):
def __init__(self):
self.infor = ''
self.infol = ''
self.infou = ''
self.infod = ''
self.ninfor = ''
self.ninfol = ''
self.ninfou = ''
self.ninfod = '' #n(ew)infod(own)
self.up=''
self.down=''
self.right=''
self.left=''
self.nup=''
self.ndown=''
self.nright=''
self.nleft=''
def newDirection(self, room):
room.nup = room.up #n(ew)up
room.ndown = room.down
room.nright = room.right
room.nleft = room.left
def setDirection(self, room):
room.up = room.nup #n(ew)up
room.down = room.ndown
room.right = room.nright
room.left = room.nleft
def dup(self, room):
room.nup = room.up
room.ndown = room.down
room.nright = room.right
room.nleft = room.left
room.ninfou = room.infou
room.ninfod = room.infod
room.ninfor = room.infor
room.ninfol = room.infol
def ddown(self, room):
room.nup = room.down
room.ndown = room.up
room.nright = room.left
room.nleft = room.right
room.ninfou = room.infod
room.ninfod = room.infou
room.ninfor = room.infol
room.ninfol = room.infor
def dright(self):
room.up = room.left
room.down = room.right
room.right = room.down
room.left = room.up
def dleft(self):
room.up = room.right
room.down = room.left
room.right = room.up
room.left = room.down
raum_1=Place()
raum_2=Place()
raum_3=Place()
raum_1.up = raum_2
raum_1.down = raum_1
raum_2.down = raum_1
raum_2.up = raum_3
raum_3.down = raum_2
raum_1.infou = "R1 Oben"
raum_2.infou = "R2 Oben"
raum_2.infod = "R2 Unten"
raum_3.infod = "R3 Unten"
position = raum_1
death = False
win = False
position.newDirection(position)
while(death != True)and(win != True):
command=input()
if command == 'up':
position = position.nup
position.dup(position)
if command == 'down':
position = position.ndown
position.ddown(position)
if command == 'right':
position = position.nright
position.dright
if command == 'left':
position = position.nleft
position.dleft
position.setDirection(position)
print(position.ninfou, position.ninfod, position.ninfor, position.ninfol)
Выдолжен иметь возможность менять комнаты столько раз, сколько вы хотите.
Traceback (most recent call last):
File "G:\Informatik\Textadventure_game_2.py", line 90, in <module>
position.ddown(position)
AttributeError: 'str' object has no attribute 'ddown'