2048 game

تطوير نسخة من لعبة 2048 باستخدام Javascript

2048 game

السلام عليكم و رحمة الله.

في البداية لعبة 2048 هي لعبة منتشرة علي الأنترنت تقوم علي مبدا جمع الأرقام حتي تصل إلى رقم 2048  لمن لا يعرفها يمكنك ان تجربتها سريعا علي http://eslam.me/2048 اللعبة انتشرت بشكل كبير علي الويب و الهواتف المحمولة و يوجد منها عده نسخ الي الان من اشهرهم (لا اعلم هل هي أولهم ام لا) نسخة المطور  Gabriele Cirulli التي حسب قولة اقتبسها من 1024 by Veewo Studio وتشابه كثيرا في المبداء لعبة Threes by Asher Vollmer, قد ثار جدل كبير حول نسخ اللعبة و خصوصا من الأخير Asher Vollmer لكن دعونا من كل هذا.

منذ ان علمت عن اللعبة وشهرتها الغريبة بالنسبة لبساطتها -تذكرني بـ flappy bird- بدت غريبة بعض الشيء و شيقة للتجربة حتي جاء يوم سفر لمناسبة في القاهرة و انا في الإسكندرية يأخذ الطريق عادتا 3 ساعات و كانت اول مرة اجرب فيها اللعبة, لعبتها بعض الوقت حتي وصلنا القاهرة ثم كانت رحلة العودة حينها اخرجت الهاتف حتي اعود للعبة لكن ما كان يشغلني طوال الوقت في هذا اليوم هوا مدى انتشارها و سهولة تطويرها… لا يمكن ان تكون مطور مواقع او مبرمج ولا تفكر اذا كيف يمكنني ان افعلها :D وهذا ما كان, في رحلة العودة بدائت بكتابة pseudo codes للخوارزمية اللازمة لعمل اللعبة.

حين تفكر في اللعبة تجدها بسيطة من حيث التكوين و المهام التي تقوم بها و يمكننا حصرها في

  • ظهور مربع في مكان عشوائي فارغ بقيمة عشوائية تساوي 2 او 4
  • تحريك المربعات الممكن تحريكها
  • جمع المربعات بعد تحريكها اذا كانت قابلة للجمع
  • التاكد من هل هناك فرصة للحركة ام انتهت اللعبة
  • أعادة جميع المتغيرات لقيمتها الأساسية و بداية اللعبة من جديد

بدائت في كتابة الخوارزمية الخاصة بحركة المربعات في اللعبة اذا أشار اللاعب الي اي اتجاه, ثم عملية جمع الأرقام و جميع ما سبق بشكل مبداي, استعنت بتطبيق لحفظ الملاحظات علي الموبايل في الكتابة و استغرقت في هذا طوال طريق العودة, هكذا انقضت 3 ساعات في تطوير خوارزمية اللعبة الأساسية ثم عندما عدت إلى الإسكندرية بعدها بيوم عملت قليلا علي تطوير اللعبة ثم بعدها بيومين حللت احد المشاكل الخاصة بحسابات اللعبة و هكذا انتهيت من تطوير أساس اللعبة في ما يقارب 6 ساعات. بعدها اخذت بعض الوقت لأضافه التصميم البسيط الموجود حاليا و استعنت بمكتبة bootstrap, أضفت خاصية جديدة وهي التحكم في حجم رقعة اللعب حيث اللعبة الأساسية تتيح اللعب في مساحة 4*4 فقط ولكن الآن الخيار متاح للاعب أن يوسع رقة اللعب إلى 10*10 ولكن مع زيادة عدد المربعات الشوائية التي يتم إضافتها مع كل حركة.

الآن اللعبة متوفرة للاستخدام علي الرابط http://eslam.me/2048  للتجربتها و ايضا الـكود الخاص باللعبة متوفر علي موقع GitHub https://github.com/eslam-mahmoud/2048 ادعوا الجميع لتجربة اللعبة و إبداء الآراء و المشاركة في تطويرها. الخطوة القادة أضافه دعم للأجهزة المحمولة  التي تعمل باللمس و اضافة تاثير حركي افضل للمربعات ثم تدوينه تشرح كود اللعبة.

Comments button Twitter button Facebook button LinkedIn button Google+ button

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.