اصنع لعبة بسيطة بواسطة PHP [تدريبات]

Posted in Uncategorized on Apr 14, 2009

الغاية من بناء اللعبة:

التدرب على استخدام التعليمات: if, else, elseif, rand.

فكرة اللعبة:

يجب على اللاعب الاعتماد على حظه بتوقع رقم بين 1 و 6 وإدخاله للفورم الموجود لدينا وبهذا سيتم تحديد النتيجة بعد أن تقوم PHP بتحليل المعطيات.

أحداث اللعبة:

يدخل اللاعب إلى الصفحة يدخل رقم في الفورم ثم يضغط زر الإرسال، تقوم PHP بإصدار رقم عشوائي بين 1 و 6 ومقارنته مع الرقم الذي أدخله اللاعب وتقوم بإصدار النتيجة.

طريقة التحضير: 😀

ندخل إلى برنامج كتابة البرامج المفضل لدينا (أستخدم برنامج Adobe Dreamweaver لسهولة التعامل معه كمبتدأ)

ونطلب إنشاء صفحة PHP جديدة، ثم نقوم بالخطوات التالية كما هو مبين بالصورة في الأسفل:

  1. ننتقل إلى وضع code من واجهة البرنامج.
  2. نضيف التعليمة التي تحتها خط إلى النص الأساسي الذي أنشأه البرنامج: (ليصير اتجاه الصفحة من اليمين لليسار)
  3. dir=”rtl”

  4. نعدّل عنوان الصفحة لأي عنوان نريده.
  5. نقوم بحفظ الصفحة باسم game.php في المجلد الرئيسي لسيرفرنا المحلي (مجلد www مثلاً).

الآن سنبدأ بوضع الفورم المناسب بعد الوسم <body> سنحتاج إلى الكود التالي:

<form method=”get” action=””>
خمّن رقماً بين 1 و 6 ؟<br />
<input type=”text” name=”number”>
<input type=”submit” value=”ضربة حظ”>
</form>

سيكوّن هذا الفورم ما يلي:

يقوم هذا الفورم باستخدام GET لإرسال متغيّر اسمه number (قيمة مربع النص)، وحيث أننا تركنا خانة action فارغة فالفورم سيرسل النتيجة إلى نفس الصفحة.

الآن نحتاج لبرنامج يتوقع رقم بين 1 و 6 ثم يستقبل الرقم المرسل عن طريق GET ويقارنهما.

نقوم الآن بكتابة الكود التالي بين وسم <body> و بداية الفورم (أي أن الكود يجب أن يكون قبل الفورم)

<?php
$my_num = rand (1,6);

if ($number>$my_num) {
echo “رقمك أكبر من الرقم الذي أفكر فيه وهو $my_num”;
} elseif ($number<$my_num) {
echo “رقمك أصغر من الرقم الذي أفكر فيه وهو $my_num”;
} else {
echo “لقد نجحت”;
}
?>

يقوم السطر الأول بخلق متحوّل جديد اسمه my_num$، ثم يملأه برقم واحد من التعليمة rand التي تختار رقم عشوائياً يقع بين القيمتين المحددتين ضمن القوسين.

في السطر الثاني نستخدم التعليمة if للمقارنة بين المتحول number الذي أرسله الفورم و my_num الذي كوّنته php، عن طريق إشارة أكبر فإن تحقق الشرط سيعرض المتصفح الجملة الموجودة في التعليمة echo متبوعة بالرقم الذي اختارته التعليمة rand. إذا لم يتحقق الشرط سيتابع البرنامج عمله.

في الشرط التالي التعليمة elseif الذي يعاود عملية المقارنة عن طريق إشارة أصغر، فيعرض الجملة أو يتابع البرنامج عمله.

إذا تابع البرنامج عمله سيصل إلى التعليمة else والتي تعني أن الرقم الذي أدخله اللاعب ليس أكبر أو أصغر فيكون قد نجح في تجريب حظه.

اطلب البرنامج الآن عن طريق كتابة ما يلي في عنوان متصفحك المفضل (أرجو أن يكون فايرفوكس :D)

http://localhost/game.php

قم بتجريب البرنامج الآن …
وبهذا نكون قد كوّنا برنامجاً بسيطاً مسلياً وقابلاً للتطوير في ما بعد للتدرب على أمور أخرى

الآن أرجو منكم محاولة ما يلي ومشاركتنا النتيجة عن طريق وضع تعليقات على هذا الدرس:

  • هذا البرنامج يحوي مشاكل: منها أنه عند طلب الصفحة للمرة الأولى دون إدخال أي قيمة فإن البرنامج يعتبر أننا أدخلنا القيمة صفر وبالتالي سيعرض جملة “رقمك أصغر من الرقم الذي أفكر فيه …”. حاول إيجاد طريقة بواسطة التعليمات الموجودة في الدرس لإيقاف هذه المشكلة.
  • يمكن إيجاد طرق أسهل للوصول إلى نفس النتيجة الموجودة في اللعبة. حاول إيجاد طريقة أخرى على الأقل.
  • حاول استخدام الدروس التالية من مدونة cssbit لتحسين مظهر اللعبة: اضغط هنا أو هنا

الرجاء عدم التردد في طرح أي سؤال.

مع التقدير

4 Comments

  1. May 7, 2009

    يعطيك العافية أخي حسام ، على الدرس الخفيف هذا .. جزاك الله خير

  2. May 17, 2009

    @ yusuf
    شكراً لك

  3. Jul 28, 2010

    أنا نهمٌ لمثل هذه الدروس وأريد الكثير ولكن على مهلك معنا فالمعادلات والرموز البرمجية لم نفهم منها شيئاً

  4. Mar 12, 2011

    شكرا

Leave a Reply

لن يتم نشر البريد الإلكتروني . Required fields are marked *