إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

تصميم مسابقة باستعمال الاختيارات

تقليص
هذا الموضوع مغلق.
X
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • تصميم مسابقة باستعمال الاختيارات

    السلام عليكم

    كثيرا ما نريد تصميم مسابقات بسيطة تعتمد على الاختيارات
    درسنا اليوم حول استعمال الاوتويلاي من اجل ذلك
    ---------------
    افتح مشروع جديد
    الان في الصفحة في ONSHOW ضع الكود
    كود PHP:
    Page.ClickObject("xButton1"
    وهو كود خاص بشتغيل الاوامر الموجودة في زر XBUTTON
    هذا xButton نجعله مخفيا

    ---------------------
    نضع الاسئلة في ليسبوكس بحيث نضع في item السؤال
    و نضع في data الاختيارات الثلاثة بحيث نفصل بينها بنقطة (.) و يكون الاختيار الصحيح هو الاول

    مثال : في item نضع ( ما عاصمة الجزائر ؟ )
    في data نضع ( الجزائر . بشار . اقلي )




    --------------------
    الان كيف نستدعي الاسئلة من اليستبوكس ؟
    ضع في المشروع paragraph لعرض السؤال
    ضع 3 من الازرار button واحد اسفل الاخر وهذا لعرض الاختيارات

    ------------------
    الان سنتدعي سؤال من اليسبوكس بطريقة عشوائبة رقمه مثلا igli
    اذن نستعمل الدالة math.rondom من 1 الى عدد عناصر اليسبوكس
    فيضبح الكود هو :


    كود PHP:
    igli Math.Random(1,ListBox.GetCount("ListBox1")); 
    -----------------------
    بعد اختيارانا العشوائي للعنصر من اليسبوكس .......نستعدي محتوى item في البارغراف و الاختيارات في الازار
    الكود المناسب للسؤال ببساطة هو


    كود PHP:
    qus ListBox.GetItemText("ListBox1"igli); 
    Paragraph.SetText("Paragraph1"qus
    اما الاختيارات فيجب تفرقة المحتوى الى 3 بحيث نستعمل دالة البحث لتحديد موضع النقطة الاولى و بالتالي الاختيار الاول سيكون من بداية النص (1) الى موضع النقطة الاولى ناقصا 1 ...........
    نحدد موضع التقطة الثانية فيكون الاختيار الثاني من موضع النقطة الاولى الى موضع النقطة الثانية
    الاختيار الثالث سيكون من نهاية من موضع النقطة الثانية الى نهاية النص


    نستدعي النص من data عبر الكود التالي
    كود PHP:
    ala ListBox.GetItemData("ListBox1"igli); 

    الان تبحث عن النقطة الاولى

    كود PHP:
    f1 String.Find(ala"."1); 

    اما النقطة الثانية

    كود PHP:
    f2 String.Find(ala"."f1+1); 
    جميل ..........الان الاختيار الاةل يكون من بادية النص 1 الى f1
    ثم نضع النص قس الزر الاول


    كود PHP:
    v1 String.Mid(ala1f1-1);          
    Button.SetText("Button1"v1); 
    بالنسبة للاختيار الثاني
    كود PHP:
    v2 String.Mid(alaf1+1f2-f1-1);      
    Button.SetText("Button2"v2); 
    الان نحدد طول النص كله
    كود PHP:
    long String.Length(ala); 

    فيكون الاختيار الثالث من f2 الى اخر النص اي الى long
    و نضعه في الزر الثالث


    كود PHP:
    v3 String.Mid(alaf2+1long-f2);    
    Button.SetText("Button3"v3); 
    --------------------------
    الان كي لا يتكرر السؤال نمحيه من ليسبوكس
    كود PHP:
    ListBox.DeleteItem("ListBox1",igli); 
    -----------------------------
    الان يجب ان نخلط موقع الازار كل مرة حتى لا يعرف موقع الزر الاول و الذي هو الجواب الصح
    كيف ؟؟؟؟؟؟؟؟


    اولا نسجل مواقع الازار في مصفوفة نسميها مثلا pos

    كود PHP:
    pos={}; 
    for 
    i=1,do 
    pos[i] = Button.GetPos("Button"..i); 
    end 

    الان نغير المواقع عشوائيا
    وفي كل مرة تحذف الموقع من المصفوفة


    كود PHP:
    for i=1,#pos do
    ali Math.Random(1,#pos);
    Button.SetPos("Button"..i,pos[ali].,pos[ali].Y);
    Table.Remove(pos,ali);
    end 
    ------------------------------------------
    بعد نفاذ عناصر الليسبوكس اي تنتهي الاسئلة
    يجب ان تظهر مرة اخرى ..........لذلك سنقوم بلقطة جميلة .......و هي بعد ان تنتهي من كتابة الاسئلة باجابتها
    انسخ اليسبوكس كلها فيصبح لدينا اثنين من اليسبوكس listBox1 و lisbox2

    الان اذا وصل عدد الاسئلة اقل من 1 اي عدد عناصر اليسبوكس سيقوم الاكود بنسخ كل محتوى اليسبوكس 2 الى الليسبوكس 1
    بالكودالتالي :

    كود PHP:
    if ListBox.GetCount("ListBox1") < 1  then
    ListBox
    .DeleteItem("ListBox1"LB_ALLITEMS);
      for 
    ListBox.GetCount("ListBox2") do
     
    ListBox.GetItemText("ListBox2"i); 
     
    ListBox.GetItemData("ListBox2"i); 
     
    ListBox.AddItem("ListBox1"qa)
      
    end
    end
    ------ 
    ------------------------------------------
    نجمع كل ما سبق نضع كل الاكواد في زر xbutton

    كود PHP:
    pos={}; 
    for 
    i=1,do 
    pos[i] = Button.GetPos("Button"..i); 
    end
    ---------------
    if 
    ListBox.GetCount("ListBox1") < 1  then
    ListBox
    .DeleteItem("ListBox1"LB_ALLITEMS);
      for 
    ListBox.GetCount("ListBox2") do
     
    ListBox.GetItemText("ListBox2"i); 
     
    ListBox.GetItemData("ListBox2"i); 
     
    ListBox.AddItem("ListBox1"qa)
      
    end
    end
    ---------------------
    igli Math.Random(1,ListBox.GetCount("ListBox1"));
    qus ListBox.GetItemText("ListBox1"igli); 
    Paragraph.SetText("Paragraph1"qus)
    -------------------------------------
    ala ListBox.GetItemData("ListBox1"igli); 
    f1 String.Find(ala"."1);
    f2 String.Find(ala"."f1+1);
    long String.Length(ala);
    v1 String.Mid(ala1f1-1);          
    Button.SetText("Button1"v1);
    v2 String.Mid(alaf1+1f2-f1-1);      
    Button.SetText("Button2"v2);
    v3 String.Mid(alaf2+1long-f2);    
    Button.SetText("Button3"v3);
    ------------------------------------------
    for 
    i=1,#pos do
    ali Math.Random(1,#pos);
    Button.SetPos("Button"..i,pos[ali].,pos[ali].Y);
    Table.Remove(pos,ali);
    end

    ListBox
    .DeleteItem("ListBox1",igli); 
    ---------------------------------------
    التصحيح : نضع لبيال Label1 و الذي سيعرض فيه عدد الاجابات الصحيحة

    الان في الازار الثلاثة :
    الزر الاول وهو الذي يحمل الجواب الصح اذا ضغطه يصدر صوت التصفيق و يضاف الى عدد الاجابات الصحيحة
    بعد فترة معينة سيقوم النبرنامج بعرض السوال الموالي بتفعيل الزر xButton
    نضع في الزر الاول الكود التالي :


    كود PHP:
    Label.SetText("Label1"tonumber(Label.GetText("Label1"))+1);
    Audio.Load(CHANNEL_NARRATION"AutoPlay\\Audio\\yes1.wav"true);
    Application.Sleep(1000);
    Page.ClickObject("xButton1"
    في الزر الثاني و الثالث هو الجواب الخطا يصدر صوت الخطا و بعد فترة يعرض السرال الموالي

    نضع فيهما الكود

    كود PHP:
    Audio.Load(CHANNEL_NARRATION"AutoPlay\\Audio\\no1.wav"true);
    Application.Sleep(1000);
    Page.ClickObject("xButton1"

    ----------------------------------------------------------
    بعد الانتهاء اضغط معاينة



    ننتظر مشاريعكم و نلتقي بعدها في الاصدار الثاني

    تحياتي

  • #2
    الاصدار الثاني :

    الان نريد ادخال تعديلات على المشروع
    ---------------
    اذا ضغط الزر الصح يصبح الزر اخضر ......................
    و اذا ضغط على الخطأ يصبح لونه الزر احمر ............و يظهر الزر الصح بلونه الاخضر
    في السؤال الموالي تعود الازار الى لونها الاول
    ------------------
    نتفق على المسميات :
    يلومنا ثلاثة ازرار الزر الاصلي يمون تسميته في محلد الازار buttons ....... باسم gris


    زر اخر بلون احمر باسم red

    زر اخر اخضر باسم green

    ------------
    الان في الزر الاول نستبدل الكود الموحود بالتالي :

    كود PHP:
    Label.SetText("Label1"tonumber(Label.GetText("Label1"))+1);
    Audio.Load(CHANNEL_NARRATION"AutoPlay\\Audio\\yes1.wav"true);
    Button.SetProperties(this,{ButtonFile "AutoPlay\\Buttons\\green.btn"});
    Application.Sleep(1000);
    Page.ClickObject("xButton1"
    في الزر الثاني و الثالث نضع الكود التالي :
    كود PHP:
    Audio.Load(CHANNEL_NARRATION"AutoPlay\\Audio\\no1.wav"true);
    Button.SetProperties(this,{ButtonFile "AutoPlay\\Buttons\\red.btn"});
    Button.SetProperties("Button1",{ButtonFile "AutoPlay\\Buttons\\green.btn"});
    Application.Sleep(1000);
    Page.ClickObject("xButton1"
    ---------------------------
    في زر عرض الاسئلة في xButoon نضيف في الاعلى

    كود PHP:
    for i=1,do
    Button.SetProperties("Button"..i,{ButtonFile "AutoPlay\\Buttons\\gris.btn"});
    end 
    -----------------------------
    ثم بالمعاينة



    بالتوفيق

    تعليق


    • #3
      الله يعطيك العافية
      استفدت كثيرا من هذا المضوع

      تعليق

      مواضيع تهمك

      تقليص

      المنتدى: القسم العام نشرت بواسطة: ماريا عبد الله الوقت: 06-08-2025 الساعة 11:33 PM
      المنتدى: القسم العام نشرت بواسطة: ماريا عبد الله الوقت: 06-04-2025 الساعة 05:29 PM
      المنتدى: القسم العام نشرت بواسطة: ماريا عبد الله الوقت: 05-31-2025 الساعة 10:07 PM
      المنتدى: القسم العام نشرت بواسطة: ماريا عبد الله الوقت: 05-30-2025 الساعة 11:48 PM
      المنتدى: التصنيع والانتاج نشرت بواسطة: HaMooooDi الوقت: 05-30-2025 الساعة 09:36 AM
      يعمل...
      X