Menu
CoddyTech

Obsługa nieprawidłowych ruchów

Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 30 z 54.

challenge icon

Wyzwanie

Łatwy

Dodaj obsługę błędów do systemu poruszania się, aby wyświetlać informację zwrotną, gdy gracz wybierze nieprawidłowy kierunek.

Otrzymujesz zmienne startingRoom, gardenRoom i player z poprzedniego wyzwania.

Zmodyfikuj pętlę gry, aby obsługiwała nieprawidłowe polecenia ruchu:

  • Zastąp wyjścia east/west z poprzedniego wyzwania wyjściami north/south: ustaw startingRoom.exits["north"] na gardenRoom, a gardenRoom.exits["south"] na startingRoom
  • Wyświetl opis pokoju, w którym aktualnie znajduje się gracz
  • Wyświetl znak zachęty "> " (znak większości, po którym następuje spacja), bez znaku nowej linii
  • Odczytaj polecenie użytkownika za pomocą io.read()
  • Sprawdź, czy polecenie pasuje do klucza w tabeli exits bieżącego pokoju
  • Jeśli pasuje, zaktualizuj player.currentRoom, przypisując mu pokój zapisany w tym wyjściu
  • Jeśli polecenie nie pasuje do żadnego wyjścia i nie jest równe "quit", wyświetl "You can't go that way."
  • Jeśli polecenie jest równe "quit", ustaw gameRunning na false, aby zakończyć pętlę

Pętla powinna działać, dopóki użytkownik nie wpisze "quit".

Oczekiwany format wyjścia:

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

Spróbuj swoich sił

-- Definicje pomieszczeń
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: Połącz pomieszczenia wyjściami na północ i południe

-- Gracz
local player = {
    currentRoom = startingRoom
}

-- Pętla gry
local gameRunning = true

-- TODO: Napisz tutaj pętlę while

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Lua online