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