المرجع — دليل لغة قلم الكامل
هذا المرجع يغطي كل كلمة مفتاحية وكل تركيب في لغة قلم (.qalam). كل معلومة مصحوبة بمثال قصير يعمل.
محتويات الملف
يمكن أن يبدأ الملف ببيانات اختيارية تُكتب قبل أول ===:
عنوان: "لص القصر"
مؤلف: "سارة أحمد"
لغة: "ar"
الأسماء الإنجليزية: TITLE:, AUTHOR:, LANGUAGE:
إذا لم تُكتب، العنوان الافتراضي هو اسم الملف.
المقاطع
المقطع هو الوحدة الأساسية — ما يراه القارئ دفعة واحدة.
=== اسم_المقطع ===
كل ما يلي العنوان حتى المقطع التالي هو محتوى هذا المقطع.
المقطع الأول في الملف هو مقطع البداية (أول ما يراه القارئ).
المقاطع الفرعية
داخل المقطع، يمكن تعريف مقاطع فرعية بعلامة =:
=== المنزل ===
= غرفة_النوم
تستيقظ في غرفة مظلمة.
= المطبخ
رائحة القهوة تملأ المكان.
للإشارة إلى مقطع فرعي: المنزل.غرفة_النوم — اسم المقطع متبوعًا بنقطة ثم اسم المقطع الفرعي.
الخيارات
خيار عادي *
يختفي بعد أن يختاره القارئ مرة واحدة:
=== مقطع ===
* [نص الزر]
النص الذي يظهر بعد الاختيار.
-> تابع
خيار دائم +
يبقى متاحًا مهما استخدمه القارئ:
+ [عد للخلف]
تعود أدراجك.
-> البداية
خيار بدون نص منفصل
إذا لم تكتب [ ]، السطر كله هو نص الزر والنص الظاهر:
* افتح الباب
-> الممر
خيارات متداخلة
داخل الخيار يمكن أن يكون هناك خيارات فرعية بالعلامة **:
* [افتح الباب]
الباب مقفل.
** [ابحث عن المفتاح]
وجدت المفتاح تحت السجادة.
-> الممر
** [حاول كسر الباب]
الباب متين جدًا.
-> البداية
ملاحظة: النص بعد [ ] في الخيار الأساسي يظهر كله قبل الخيارات المتداخلة.
الانتقالات
-> اذهب إلى مقطع
-> اسم_المقطع
ينهي المشهد الحالي وينتقل فورًا.
->-> العودة من نفق
يُستخدم داخل مقطع نفق للعودة إلى المكان الذي استُدعي منه:
=== وصف_الغرفة ===
الغرفة واسعة. الجدران مزينة بنقوش عربية.
->->
نهاية و END
ينهي القصة:
-> نهاية
-> END
تابع و DONE
لا يغير المقطع — يُبقي القارئ في نفس المكان (مفيد مع الخيارات التي لا تنتقل):
* [انظر حولك]
لا ترى شيئًا جديدًا.
-> تابع
المتغيرات
تعريف متغير
متغير نقاط = ٠
متغير اسم_البطل = "سيف"
متغير وجد_الكنز = خطأ
الأسماء الإنجليزية: VAR
الأنواع المدعومة: أعداد، نصوص، قيم منطقية (صح/خطأ)
تغيير قيمة متغير
~ نقاط = نقاط + ٥
~ اسم_البطل = "ليلى"
~ وجد_الكنز = صح
إدراج قيمة متغير في النص
الأقواس دون نقطتين تطبع قيمة المتغير:
لديك {نقاط} نقطة.
اسمك {اسم_البطل}.
مهم: النقطتان : تفرقان بين الإدراج والشرط. {س} إدراج، {س:} شرط.
الشروط
شرط بسيط
{وجد_المفتاح: المفتاح في جيبك.}
إذا كان المتغير صح (أو قيمته لا تساوي صفرًا)، يظهر النص.
شرط بمقارنة
{نقاط > ٥: أحسنت! لقد جمعت نقاطًا كثيرة.}
عمليات المقارنة: ==, != (أو ≠), <, >, <= (أو ≤), >= (أو ≥)
شرط متعدد الفروع
{الشجاعة:
- الشجاعة < ٣: ترتجف من الخوف.
- الشجاعة < ٧: تتردد قليلاً.
- غير_ذلك: تتقدم بثبات.
}
غير_ذلك هي الفرع الافتراضي. يمكن استخدام ELSE كبديل إنجليزي.
نفي
{لا وجد_المفتاح: ليس معك مفتاح.}
الأسماء الإنجليزية: not
روابط منطقية
{نقاط > ٠ و نقاط < ١٠: في منتصف الطريق.}
{س > ٥ أو ص < ٣: الشرط متحقق.}
الأسماء الإنجليزية: and, or
القوائم
لتتبع حالات متعددة (مثل العتاد):
قائمة حالة_الباب = (مغلق)، مفتوح، مكسور
قائمة المخزون = (لا_شيء)، مفتاح، مصباح
القيمة الأولى بين قوسين ( ) هي القيمة الابتدائية.
الأسماء الإنجليزية: LIST
استخدام القوائم:
~ حالة_الباب = مفتوح
~ المخزون = مفتاح
{حالة_الباب == مفتوح: الباب مفتوح.}
الأنفاق
مقطع يُستدعى ثم يعود تلقائيًا:
-> وصف_الغرفة ->
=== وصف_الغرفة ===
الغرفة واسعة. السقف مرتفع.
->->
الاستدعاء: -> اسم_النفق -> (السهم مزدوج) العودة: ->-> داخل النفق
الخيوط
دمج محتوى من مقاطع متعددة في مقطع واحد:
=== السوق ===
الأصوات تملأ المكان.
<- بائع_الفاكهة
<- بائع_التوابل
العلامة <- تسحب محتوى مقطع آخر إلى هذا الموضع. (هذه الخاصية قيد التطوير.)
التعابير الحسابية
~ المجموع = س + ص
~ الناتج = س * ٢
~ الباقي = س ٪ ٣
العمليات: +, -, *, /, % (أو ٪)
الدوال المدمجة
عشوائي(أ, ب) — رقم عشوائي
~ الضرر = عشوائي(١, ٦)
الإنجليزية: RANDOM(1, 6)
زار(مقطع) — هل زار القارئ هذا المقطع؟
{زار(الغرفة_السرية): تعرف الطريق.}
الإنجليزية: VISITED
عدد_الزيارات(مقطع) — كم مرة زار المقطع
{عدد_الزيارات(المكتبة) > ٢: حفظت مكان كل كتاب.}
الإنجليزية: VISIT_COUNT
طول(نص) — عدد حروف النص
~ عدد_الحروف = طول(اسم_البطل)
الإنجليزية: LEN
الكلمات المفتاحية — عربي وإنجليزي
| العربي | الإنجليزي |
|---|---|
متغير | VAR |
قائمة | LIST |
صح | true |
خطأ | false |
و | and |
أو | or |
لا | not |
نهاية | END |
تابع | DONE |
غير_ذلك | ELSE |
عشوائي | RANDOM |
زار | VISITED |
عدد_الزيارات | VISIT_COUNT |
طول | LEN |
عنوان | TITLE |
مؤلف | AUTHOR |
لغة | LANGUAGE |
ملاحظات مهمة
- التشكيل في أسماء المتغيرات:
كَلْبوكلبيعاملان معاملة واحدة. يُنزع التشكيل تلقائيًا في أسماء المتغيرات والمقاطع. النص العادي يحتفظ بالتشكيل. - الأرقام: تقبل العربية (٠١٢٣) والغربية (0123).
- المسافات: المسافة بعد
]في الخيارات فاصلة وليست جزءًا من النص. المسافات حول{ }في النص محفوظة. - الترميز: الملفات بصيغة UTF-8.