Obsługa nieprawidłowych ruchów
Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 30 z 54.
Wyzwanie
ŁatwyDodaj 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"]nagardenRoom, agardenRoom.exits["south"]nastartingRoom - 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
exitsbieżą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", ustawgameRunningnafalse, 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
1Zaawansowane iterowanie po tabelach
Iterowanie za pomocą pairs()Iterowanie za pomocą ipairs()pairs() a ipairs()Powtórka — karta postaci2Więcej funkcji biblioteki table
table.concat()Tworzenie tabel i unpack()table.sort()Sortowanie niestandardowe za pomocą funkcjiPodsumowanie — tablica najlepszych wyników5Projekt: silnik tekstowej gry przygodowej
Konfiguracja projektu: pokójŁączenie pokoiPoćwicz samodzielnie: Kompilator Lua online