تحريك اللاعب
جزء من قسم المنطق وتسلسل التنفيذ في رحلة 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
table.concat()إنشاء الجداول و unpack()table.sort()فرز مخصص باستخدام الدوالمراجعة - لوحة أعلى النتائج5مشروع: محرك مغامرة نصية
إعداد المشروع: الغرفةربط الغرفتدرّب بنفسك: مترجم Lua عبر الإنترنت