Menu
Coddy logo textTech

Exibindo as Saídas

Parte da seção Logic & Flow do Journey de Lua da Coddy — lição 31 de 54.

challenge icon

Desafio

Fácil

Melhore a experiência do usuário no jogo exibindo todas as saídas disponíveis para o jogador após mostrar a descrição da sala.

Você recebeu as variáveis startingRoom, gardenRoom e player do desafio anterior.

Modifique o loop do jogo para exibir as saídas disponíveis:

  • Imprima a descrição da sala atual do jogador
  • Imprima "Exits:" em uma nova linha
  • Use pairs() para iterar pela tabela exits da sala atual
  • Para cada saída, imprima " - " (dois espaços, um traço e um espaço) seguido pelo nome da direção
  • Imprima o prompt "> " (sinal de maior que seguido por um espaço) sem uma nova linha
  • Leia o comando do usuário usando io.read()
  • Verifique se o comando corresponde a uma chave na tabela exits da sala atual
  • Se corresponder, atualize player.currentRoom para a sala armazenada nessa saída
  • Se o comando não corresponder a nenhuma saída e não for "quit", imprima "You can't go that way."
  • Se o comando for "quit", defina gameRunning como false para sair do loop

O loop deve continuar até que o usuário digite "quit".

Formato de Saída Esperado:

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
> 

Experimente você mesmo

-- 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

Todas as lições de Logic & Flow