הזזת השחקן
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Lua של Coddy. שיעור 29 מתוך 54.
אתגר
קלממשו את מערכת התנועה שמאפשרת לשחקן לנווט בין חדרים באמצעות בדיקת הקלט שלו מול היציאות הזמינות.
המשתנים 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
כל השיעורים ביחידה לוגיקה וזרימת התוכנית
1איטרציה מתקדמת בטבלאות
איטרציה באמצעות pairs()איטרציה באמצעות ipairs()pairs() לעומת ipairs()סיכום – גיליון דמות2פונקציות נוספות של ספריית הטבלאות
table.concat()בניית טבלה ו־unpack()table.sort()מיון מותאם אישית באמצעות פונקציותסיכום – לוח שיאים5פרויקט: מנוע להרפתקת טקסט
הגדרת הפרויקט: החדרקישור בין חדריםתרגלו בעצמכם: קומפיילר Lua אונליין