Как передать значение в функцию, а затем вернуть новое? - PullRequest
0 голосов
/ 18 октября 2019
def print_kart(kart):
    for rad in kart:
         print("   ".join(rad))

def oppdater_kart(spillerX, spillerY, monsterX, monsterY):
    kart = []
    gridline = []
    for y in range(10):
      gridline.append(".")

    for x in range(10):
     kart.append(list(gridline))

    kart[spillerY][spillerX]= '\U0001f600' #smiley
    kart[monsterY][monsterX] = '\U0001f47A' #goblin
    print_kart(kart)


def flytt_spiller(bevegelse, spillerX, spillerY):
    if bevegelse == "w":
        spillerY -=1

    elif bevegelse == "a":
        spillerX -=1

    elif bevegelse == "s":
        spillerY +=1

    elif bevegelse == "d":
        spillerX +=1

    else:
        print('push wasd to move  ')

    return spillerY, spillerX


def oppgave4():

    spillerX=1
    spillerY=2
    monsterX=3
    monsterY=4
    oppdater_kart(spillerX, spillerY, monsterX, monsterY)

    bevegelse = input('move: ')

    flytt_spiller(bevegelse, spillerX, spillerY)
    oppdater_kart(spillerX, spillerY, monsterX, monsterY)


oppgave4()

Итак, я пытаюсь реализовать flytt_spiller() в oppgave4(), чтобы смайлик двигался в соответствии с input(w/a/s/d).

Как я могу получить значение spillerX/spillerY в flytt_spiller(), затем изменить его, а затем вернуть новое значение в oppgave4()?

1 Ответ

0 голосов
/ 18 октября 2019

вам нужно добавить условие, чтобы остановить ваш код, и пока это условие не будет выполнено, затем запустить существующий код без остановки

def oppgave4():

    spillerX=1
    spillerY=2
    monsterX=3
    monsterY=4
    exit = 10

    oppdater_kart(spillerX, spillerY, monsterX, monsterY)

    bevegelse = int(input('move: '))
    while bevegelse!=10:
        flytt_spiller(bevegelse, spillerX, spillerY)
        oppdater_kart(spillerX, spillerY, monsterX, monsterY)
        bevegelse = int(input('move: '))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...