تيه · شجرة · اذهب
تطبيق Golang لـ Tetris، وفقًا للمبادئ التوجيهية الرسمية لتصميم Tetris لعام 2009.
يتكون هذا المشروع من ثلاثة مكونات رئيسية، اعتمادًا على أهدافك:
cmd/tetrigo/
مناسبة لك. راجع قسم التثبيت.pkg/tetris/modes/
مخصصة لك. يمكنك إعادة استخدام أوضاع اللعبة هذه باستخدام واجهة المستخدم الخاصة بك.pkg/tetris/
مخصصة لك. يمكنك إنشاء وضع اللعبة الخاص بك باستخدام مجموعة مخصصة من القواعد والمتطلبات.يمكنك العثور على مزيد من المعلومات حول هذه الأقسام في قسم التطوير. إذا كان لديك اقتراح أو خطأ أو طلب ميزة، يرجى فتح مشكلة GitHub.
يمكن تثبيت Tetrigo عن طريق تنزيل الملف الثنائي أو عن طريق البناء من المصدر. راجع الإرشادات أدناه لمعرفة الطريقة المفضلة لديك.
يمكنك تنزيل الملف الثنائي المتوافق مع نظام التشغيل الخاص بك من صفحة الإصدارات على GitHub.
بمجرد التنزيل، يمكنك تشغيل الملف الثنائي من سطر الأوامر:
# Linux or macOS
./tetrigo
# Windows
tetrigo.exe
اختياريًا، يمكنك نقل الملف الثنائي إلى دليل في $PATH
الخاص بك لتشغيله من أي مكان (على سبيل المثال).
تأكد من أن لديك إصدارًا مدعومًا من Go مثبتًا وإعدادًا بشكل صحيح. يمكنك العثور على الحد الأدنى المطلوب من إصدار Go في ملف go.mod.
يمكنك بعد ذلك تثبيت الإصدار الأحدث عالميًا عن طريق تشغيل:
go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
أو يمكنك التثبيت في دليل آخر:
env GOBIN=/bin go install github.com/Broderick-Westrope/tetrigo/cmd/tetrigo@latest
للحصول على معلومات عامة حول كيفية لعب تتريس، راجع دليل المبتدئين هذا.
عناصر التحكم الافتراضية في اللعبة هي كما يلي:
A
D
S
W
E
Q
Space
أو Enter
Escape
Ctrl+C
?
يمكن تغيير عناصر التحكم في اللعبة في ملف التكوين.
يمكن التنقل في القائمة ولوحة المتصدرين وما إلى ذلك باستخدام مفاتيح الأسهم (التحرك)، والهروب (الخروج)، والدخول (الإرسال). عناصر التحكم هذه غير قابلة للتكوين.
سيؤدي بدء تشغيل Tetrigo بدون أمر فرعي أو أعلام إلى بدء اللعبة في القائمة حيث يمكنك تكوين الإعدادات البسيطة يدويًا مثل اسم اللاعب ووضع اللعبة:
./tetrigo
يمكنك أيضًا بدء اللعبة مباشرةً في أحد أوضاع اللعب (على سبيل المثال، ماراثون)، وتخطي القائمة:
# Start the game in Marathon mode with a level of 5 and the player name "Brodie"
./tetrigo play marathon --level=5 --name=Brodie
لرؤية المزيد من الخيارات لبدء اللعبة يمكنك تشغيل:
./tetrigo --help
يمكن إجراء تكوين أكثر تعقيدًا باستخدام ملف TOML. إذا لم يتم العثور على ملف التكوين، فسيتم استخدام الإعدادات الافتراضية المعقولة.
افتراضيًا، سيبحث Tetrigo عن الملف ./tetrigo/config.toml
داخل دليل تكوين XDG للأجهزة (أو ما يعادله). يحدد adrg/xdg قيم XDG_CONFIG_HOME
لأنظمة تشغيل مختلفة (على سبيل المثال، في نظام التشغيل macOS يوجد دليل ~/Library/Application Support
وسيتم تخزينه هناك، وإلا في ~/Library/Preferences
). يمكنك تحديد ملف مختلف باستخدام علامة --config
.
./tetrigo --config=/path/to/config.toml
يتوفر مثال لملف التكوين في example.config.toml
.
يتم تخزين بيانات اللعبة في قاعدة بيانات SQLite. افتراضيًا، يتم تخزين قاعدة البيانات في ./tetrigo/tetrigo.db
داخل دليل بيانات XDG للأجهزة (أو ما يعادله). يحدد adrg/xdg XDG_DATA_HOME
لأنظمة التشغيل المختلفة (على سبيل المثال، في نظام التشغيل macOS، إذا كان دليل ~/Library/Application Support
موجودًا، فسيتم تخزينه هناك، وإلا في /Library/Application Support
). يمكنك تحديد مسار ملف مختلف باستخدام علامة --db
.
./tetrigo --db=/path/to/data.db
يتكون هذا المشروع من ثلاثة مكونات رئيسية:
cmd/tetrigo/
: واجهة مستخدم نصية (TUI) تتيح لك تشغيلها خارج الصندوق. كما أنه بمثابة عرض توضيحي لكيفية استخدام الحزم وكيفية إنشاء TUI باستخدام Bubble Tea.pkg/tetris/modes/
: الوظيفة لمختلف أوضاع لعبة Tetris. يمكن استخدام هذا لإنشاء لعبة Tetris بسهولة باستخدام واجهة المستخدم الخاصة بك ولكن دون الحاجة إلى معرفة مجموعة القواعد.pkg/tetris/
: منطق Tetris الأساسي، بما في ذلك أشياء مثل Tetrminimos، وMatrix، والتسجيل. يمكن استخدام هذا لإنشاء أوضاع لعب مع مجموعة القواعد والمتطلبات الخاصة بك.المهمة هي أداة البناء المستخدمة في هذا المشروع. يوجد تكوين المهمة في Taskfile.yaml. بمجرد تثبيت Task CLI، يمكنك رؤية جميع المهام المتاحة عن طريق تشغيل:
task -l
يمكنك تشغيل TUI باستخدام مهمة run
:
task run
يمكنك بناء المشروع باستخدام مهمة build
:
task build
سيؤدي هذا إلى إنشاء ملف ثنائي في دليل bin/
والذي يمكن تشغيله باستخدام الإرشادات الموجودة في قسم التثبيت.
يمكن إجراء الاختبارات باستخدام مهمة test
:
task test
يمكنك أيضًا استخدام مهمة cover
لإنشاء تقرير تغطية وفتحه:
task cover
الأولويات المطلوبة للاختبار هي:
pkg/tetris/
pkg/tetris/modes/
cmd/tetrigo/