تطوير نسخة من لعبة 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

جوجل+ تسمح للافراد بالحصول علي رابط شخصي باسمائهم

Eslam Mahmoud AbdElMoniem Google Plus account

أتاحت شبكة جوجل بلس خاصية الحصول علي رابط شخصي للأفراد باسمائهم, و وصلت الدعوات لقطاع عريض من مستخدمي شبكة جوجل بلس البالغ عددهم اكثر من نصف مليار مستخدم, و الروابط للملفات الشخصية أصبحت مثل https://plus.google.com/+EslamMahmoud (هذا هوا الرابط الخاص بي لمتابعتي) بديلا عن الروابط القديمة التي لم تكن توضح اسم الشخص و يصعب تداولها وكانت مثل https://plus.google.com/112033970556387549149

ربما الخبر قد انتشر الآن لكن تلك الخطوة من جوجل جاءت بعد فتره من أنشائي لمشروع http://IPlus.im هدف المشروع حل مشكلة صعوبة تداول عناوين الملفات الشخصية علي شبكة جوجل بلس ولا داعي لذكر قبح العناوين :D الموقع يحول عنوان ملفك الشخصي إلي عنوان مميز مثل http://iplus.im/eslam كنت قد كتبت عن خبر إنشاء الموقع من قبل هنا

http://Iplus.im

أنشأت هذا المشروع مع صديقي المبدع انس عماد http://iplus.im/anas.emad ولم نعمل علية لفترة طويلة لكنة بشكل تلقائي جذب الآلاف من المستخدمين السعداء وتم استخدام الموقع مئات الآلاف من المرات لتحويل العناوين المختصرة المميزة التي أنشأها المستخدمون, ومازال الموقع يستخدم إلى الآن ولن يتم إيقافه حتي لا يتضرر المستخدمين.

من الصدف الغريبة أني أعلنت عن المشروع في نفس تلك الفترة من العام من سنتين بالتحديد في 10.21.2011 ولكن لم ألاحظ هذا إلا الآن وأنا اكتب هذا الموضوع, العبرة هنا “أذا بدأت فكرة آيا كانت ولم تعمل عليها بالشكل المناسب لن تتطور ولن تنموا كما يجب, لكن كل فكرة و كل مشروع عملت علية تعلمت منة, البعض يعتبر هذا مجهود ضائع أن لم يتحول لمشروع ربحي كبير وأنا اعتبره خبرة مكتسبة وقيمة مضافة لي و وقت للتعلم تم توفيره في المشروع التالي.”

Comments button Twitter button Facebook button LinkedIn button Google+ button

بداية مشروع HuntEvents.net

السلام عليكم

اليوم هوا البداية الحقيقة لمشروعي Hunt Events (http://huntevents.net) وهوا موقع متخصص في الـ events  يسمح للافراد بالاشتراك ثم يقوم بارسال تنبيهات بجديد الفعاليات و الاحداث علي حسب اهتماماتهم, بداء المشروع في Startup weekend alexandria وقد كتبت تدوينة عنة في 30-09-2011 فترة كبيرة حتي الان

مر المشروع بعدة مراحل و مشاكل و كعادة اي startup او مشروع ناشيء ما يواجة صعوبات و تحديات ربما اكتب عنها تدوينة او مجموعة من التدوينات المنفصلة حتي يستفيد منها الجميع لكن هذا ليس موضوعنا الان اليوم اردت ان اعلن عن الميلات الحقيقي للمشروع 01-05-2012 ركزنا في تلك المرحلة علي المشكلة الساسية التي تواجة المستخدم وهي الحاجة للحصول علي تنبيهات بالاحداث القادمة التي تهمة, ايضا يقوم الموقع بدور الـ Media sponsor للمجموعة من الفاعليات و المراكز وهذا من قبل بداية اطلاق المشروع, ايضا هذا ليس فقط كل ما يقدمة الموقع الباقيه تاتي تباعا

الفكرة بدائت كمشكلة شخصية واجهتها في صعوبة متابعة كل جديد من احداث في المجالات التي تهمني لذلك اليوم بداء Hunt events وشعارة “Never miss an important event ;)” ادعوكم لتجربة الموقع و ارسال التعليقات و الاقتراحات http://huntevents.net

Comments button Twitter button Facebook button LinkedIn button Google+ button

Google URL Shortener PHP Class

The day Google announced that goo.gl shorten URL serves got an API i created a PHP Class to handle the connection with the API.

Finaly my class got approved from PHPClasses.org and you can get it from the website on that link.

Main Features:

  1. Shorten or expand the urls with googl shorten url serves
  2. no need to know JSON the request send as string and get the result as php array
  3. could be easily implemented

Future work:

  • will add short URL’s analytics & user’s history

you can download the class form PHPClass.org: Download Here test it and give me feed back

Check the new updates on http://eslam.me/blog/google-url-shortener-php-class-updates/

approveda

Comments button Twitter button Facebook button LinkedIn button Google+ button