טיפול בתנועות לא חוקיות
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Lua של Coddy. שיעור 30 מתוך 54.
אתגר
קלהוסף טיפול בשגיאות למערכת התנועה כדי להציג משוב כשהשחקן מזין כיוון לא חוקי.
המשתנים startingRoom, gardenRoom ו-player מהאתגר הקודם זמינים לך.
שנה את לולאת המשחק כך שתטפל בפקודות תנועה לא חוקיות:
- החלף את היציאות east/west מהאתגר הקודם ביציאות north/south: הגדר את
startingRoom.exits["north"]ל-gardenRoom, ואתgardenRoom.exits["south"]ל-startingRoom - הדפס את התיאור של החדר הנוכחי של השחקן
- הדפס את ההנחיה
"> "(סימן גדול מ- ואחריו רווח) בלי ירידת שורה - קרא את הפקודה של המשתמש באמצעות
io.read() - בדוק אם הפקודה תואמת למפתח בטבלת
exitsשל החדר הנוכחי - אם יש התאמה, עדכן את
player.currentRoomלחדר שמאוחסן ביציאה המתאימה - אם הפקודה אינה תואמת לאף יציאה ואינה
"quit", הדפס"You can't go that way." - אם הפקודה היא
"quit", הגדר אתgameRunningל-falseכדי לצאת מהלולאה
הלולאה צריכה להימשך עד שהמשתמש יקליד "quit".
פורמט הפלט הצפוי:
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.
> נסו בעצמכם
-- הגדרות החדרים
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: חברו את החדרים באמצעות יציאות צפונה ודרומה
-- שחקן
local player = {
currentRoom = startingRoom
}
-- לולאת המשחק
local gameRunning = true
-- TODO: כתבו כאן את לולאת while
כל השיעורים ביחידה לוגיקה וזרימת התוכנית
1איטרציה מתקדמת בטבלאות
איטרציה באמצעות pairs()איטרציה באמצעות ipairs()pairs() לעומת ipairs()סיכום – גיליון דמות2פונקציות נוספות של ספריית הטבלאות
table.concat()בניית טבלה ו־unpack()table.sort()מיון מותאם אישית באמצעות פונקציותסיכום – לוח שיאים5פרויקט: מנוע להרפתקת טקסט
הגדרת הפרויקט: החדרקישור בין חדריםתרגלו בעצמכם: קומפיילר Lua אונליין