Menu
CoddyTech

הזזת השחקן

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

challenge icon

אתגר

קל

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

המשתנים startingRoom, gardenRoom ו־player מהאתגר הקודם ניתנו לכם.

שנו את לולאת המשחק כך שתטפל בפקודות תנועה:

  • קוד הפתיחה מחבר בין החדרים: east מהספרייה מוביל לגינה, ו־west מוביל בחזרה
  • הדפיסו את התיאור של החדר הנוכחי של השחקן
  • הדפיסו את ההנחיה "> " (סימן גדול מ־ ואחריו רווח) ללא ירידת שורה
  • קראו את הפקודה של המשתמש באמצעות io.read()
  • בדקו אם הפקודה תואמת למפתח בטבלת exits של החדר הנוכחי
  • אם יש התאמה, עדכנו את player.currentRoom לחדר שמאוחסן ביציאה הזו
  • אם הפקודה היא "quit", הגדירו את gameRunning לערך false כדי לצאת מהלולאה

הלולאה צריכה להימשך עד שהמשתמש מקליד "quit".

הערה: מכיוון ש־io.write("> ") אינה מוסיפה ירידת שורה, שורת הפלט הבאה (תיאור החדר) מופיעה מיד אחרי ההנחיה באותה שורה בזרם הפלט הגולמי. כל איטרציה של הלולאה מפיקה את תיאור החדר בשורה משלו, ואז > ללא ירידת שורה, כך שהתיאור הבא ממשיך באותה שורה.

תבנית הפלט הצפויה (קלטים: east, ואז quit):

You find yourself in a dusty library filled with ancient books and scrolls.
> A hidden garden with overgrown plants and a small fountain.
> 

נסו בעצמכם

-- הגדרות חדרים
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 = {}
}

-- הגדר את היציאות באמצעות east / west
startingRoom.exits = {
  east = gardenRoom
}

gardenRoom.exits = {
  west = startingRoom
}

-- שחקן
local player = {
  currentRoom = startingRoom
}

-- לולאת המשחק
local gameRunning = true

-- TODO: כתוב כאן את לולאת while

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

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