Menu
Coddy logo textTech

Ausgänge anzeigen

Teil des Abschnitts Logik & Programmablauf der Lua-Journey von Coddy. Lektion 31 von 54.

challenge icon

Aufgabe

Einfach

Verbessere die Benutzererfahrung des Spiels, indem du dem Spieler nach der Raumbeschreibung alle verfügbaren Ausgänge anzeigst.

Die Variablen startingRoom, gardenRoom und player aus der vorherigen Herausforderung werden dir bereitgestellt.

Ändere die Spielschleife so, dass verfügbare Ausgänge angezeigt werden:

  • Gib die Beschreibung des aktuellen Raums des Spielers aus
  • Gib "Exits:" in einer neuen Zeile aus
  • Verwende pairs(), um durch die Tabelle exits des aktuellen Raums zu iterieren
  • Gib für jeden Ausgang " - " (zwei Leerzeichen, einen Bindestrich und ein Leerzeichen) gefolgt vom Namen der Richtung aus
  • Gib die Eingabeaufforderung "> " (Größer-als-Zeichen gefolgt von einem Leerzeichen) ohne Zeilenumbruch aus
  • Lies den Befehl des Benutzers mit io.read() ein
  • Prüfe, ob der Befehl mit einem Schlüssel in der Tabelle exits des aktuellen Raums übereinstimmt
  • Wenn er übereinstimmt, aktualisiere player.currentRoom auf den in diesem Ausgang gespeicherten Raum
  • Wenn der Befehl mit keinem Ausgang übereinstimmt und nicht "quit" ist, gib "You can't go that way." aus
  • Wenn der Befehl "quit" lautet, setze gameRunning auf false, um die Schleife zu beenden

Die Schleife soll fortgesetzt werden, bis der Benutzer "quit" eingibt.

Erwartetes Ausgabeformat:

You find yourself in a dusty library filled with ancient books and scrolls.
Exits:
  - east
> 
A hidden garden with overgrown plants and a small fountain.
Exits:
  - west
> 
You can't go that way.
A hidden garden with overgrown plants and a small fountain.
Exits:
  - west
> 
You find yourself in a dusty library filled with ancient books and scrolls.
Exits:
  - east
> 

Probier es selbst

-- Room definitions
local startingRoom = {
    description = "You find yourself in a dusty library filled with ancient books and scrolls.",
    exits = {}
}

local gardenRoom = {
    description = "A hidden garden with overgrown plants and a small fountain.",
    exits = {}
}

-- Connect rooms
startingRoom.exits["north"] = gardenRoom
gardenRoom.exits["south"] = startingRoom

-- Player
local player = {
    currentRoom = startingRoom
}

-- Game loop
local gameRunning = true

while gameRunning do
    print(player.currentRoom.description)
    io.write("> ")
    local command = io.read()
    
    if command == "quit" then
        gameRunning = false
    elseif player.currentRoom.exits[command] then
        player.currentRoom = player.currentRoom.exits[command]
    else
        print("You can't go that way.")
    end
end

Alle Lektionen in Logik & Programmablauf

Übe selbstständig: Online-Lua-Compiler