Tips till labb 6

Uppgift 6.1

Tips till labb 6

Uppgift 6.1

Ett exempel på ett dictionary som används för att representera ett rum är följande room = {"name":"Start", "desc":"The walls and floor are made of stone. You feel cold", "north":"North", "east":None, "south":None, "west":None}

Uppgift 6.2

Inga tips än.

Uppgift 6.3

Inga tips än.

Uppgift 6.4

Inga tips än.

Uppgift 6.5

Lagring av rummen i ett dictionary kan göras t.ex. så här

Skapa ett tomt dictionary för att lagra rummen

rooms = {}

Rummen kan sedan lagras i detta dictionary direkt när de skapas:

rooms["Hallen"] = create_room("hallen")

Eller så kan man kapsla in detta i en funktion för att minska risken för mänskliga fel:

def add_room(name):
    global rooms
    rooms[name] = create_room(name)

En generaliserad variant kan se ut på följande sätt:

def add_room(name, desc, n_exit=None, e_exit=None, s_exit=None, w_exit=None):
    """Skapar och lägger till ett rum i globala dictionaryt rooms"""
    global rooms

    # Skapa rum och lägg till beskrivning
    tmp_room = create_room(name)
    set_description(tmp_room, desc)

    # lagra rummet i dictionaryt rooms med rummets namn som nyckel
    rooms[name] = tmp_room

    # lägg till utgångar om vi fått några
    if n_exit:
        set_north_exit(tmp_room, n_exit)
    if e_exit:
        set_east_exit(tmp_room, e_exit)
    if s_exit:
        set_south_exit(tmp_room, s_exit)
    if w_exit:
        set_west_exit(tmp_room, w_exit)

Uppgift 6.6

Om vi har ett dictionary rooms som innehåller alla våra rum och det första rummet vi är i heter "start", lagrar vi vår nuvarande position enligt följande:

current_room = rooms["start"]

I huvudloopen vet vi då att följande kan användas för att skriva ut beskrivningen för det rum vi befinner oss i (se 6.8):

print_room_desc(current_room)

Uppgift 6.7

Inga tips än.

Uppgift 6.8

Inga tips än.

Uppgift 6.9

Inga tips än.


Sidansvarig: Jody Foo
Senast uppdaterad: 2013-02-18