Menu
CoddyTech

Lidando com Movimentos Inválidos

Parte da seção Lógica e fluxo do Journey de Lua da Coddy. Lição 30 de 54.

challenge icon

Desafio

Fácil

Adicione tratamento de erros ao sistema de movimentação para fornecer feedback quando o jogador inserir uma direção inválida.

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

Modifique o loop do jogo para lidar com comandos de movimentação inválidos:

  • Substitua as saídas east/west do desafio anterior por saídas north/south: defina startingRoom.exits["north"] como gardenRoom e gardenRoom.exits["south"] como startingRoom
  • Imprima a descrição do cômodo atual do jogador
  • Imprima o prompt "> " (sinal de maior seguido de um espaço) sem uma quebra de linha
  • Leia o comando do usuário usando io.read()
  • Verifique se o comando corresponde a uma chave na tabela exits do cômodo atual
  • Se corresponder, atualize player.currentRoom para o cômodo armazenado 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.
> A hidden garden with overgrown plants and a small fountain.
> You can't go that way.
A hidden garden with overgrown plants and a small fountain.
> You find yourself in a dusty library filled with ancient books and scrolls.
> 

Experimente você mesmo

-- Definições das salas
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 = {}
}

-- TODO: Conecte as salas com saídas para o norte e para o sul

-- Jogador
local player = {
    currentRoom = startingRoom
}

-- Loop do jogo
local gameRunning = true

-- TODO: Escreva o loop while aqui

Todas as lições de Lógica e fluxo

Pratique por conta própria: Compilador de Lua online