تحريك اللاعب
جزء من قسم Logic & Flow في رحلة Lua على Coddy — الدرس 29 من 54.
التحدي
سهلقم بتنفيذ نظام الحركة الذي يسمح للاعب بالتنقل بين الغرف من خلال التحقق من مدخلاتهم مقابل المخارج المتاحة.
لقد تم تزويدك بمتغيرات startingRoom و gardenRoom و player من التحدي السابق.
قم بتعديل حلقة اللعبة (game loop) للتعامل مع أوامر الحركة:
- اطبع وصف الغرفة الحالية للاعب
- اطبع علامة الإدخال
"> "(علامة أكبر من متبوعة بمسافة) بدون سطر جديد - اقرأ أمر المستخدم باستخدام
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.
> جرّب بنفسك
-- Game rooms
local startingRoom = {
description = "You find yourself in a dusty library filled with ancient books and scrolls."
}
local gardenRoom = {
description = "You step into a beautiful garden with blooming flowers and a gentle breeze."
}
-- Player
local player = {
currentRoom = startingRoom
}
-- Game loop
local gameRunning = true
while gameRunning do
print(player.currentRoom.description)
io.write("> ")
local command = io.read()
print("You entered: " .. command)
if command == "quit" then
gameRunning = false
end
endجميع دروس Logic & Flow
1التكرار المتقدم عبر الجداول
التكرار باستخدام pairs()التكرار باستخدام ipairs()pairs() مقابل ipairs()مراجعة - ورقة الشخصية2المزيد من دوال مكتبة Table
table.concat()إنشاء الجداول و unpack()table.sort()فرز مخصص باستخدام الدوالمراجعة - لوحة أعلى النتائج5مشروع: محرك مغامرة نصية
إعداد المشروع: الغرفةربط الغرف