Menu
CoddyTech

טיפול בתנועות לא חוקיות

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Lua של Coddy. שיעור 30 מתוך 54.

challenge icon

אתגר

קל

הוסף טיפול בשגיאות למערכת התנועה כדי להציג משוב כשהשחקן מזין כיוון לא חוקי.

המשתנים 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

כל השיעורים ביחידה לוגיקה וזרימת התוכנית

תרגלו בעצמכם: קומפיילר Lua אונליין