المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : شرح طريقة عمل مسابقة من نوع الاختيار من متعدد " للأستاذ براء"


احمدعمار
30-07-2014, 01:24 PM
بسم الله الرحمن الرحيم


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



نبدأ من طريقة كتابة الاسئلة ( من الممكن ان تكون الاسئلة في ملف خارجي سواء كان قاعدة بيانات mdb او ملف نصي...)

الخطوة الاولى نعلن عن المصفوفة و لتكن questions

var questions:Array=new Array
ثم نكتب عناصرها ( الاسئلة)

questions[0]="ماهي عملة فرنسا؟*فرنك*مارك*ليرة"
questions[1]="عكس كلمة سعيد*حزين*مبتهج*نشيط"
questions[2]="ما اسم أول قمر صناعي؟*سبوتنك1*ابولو11*تشالن جر"
لايوجد طريقة محددة لكتابة الاسئلة .. بامكانك مثلا حجز مصفوفة للاسئلة و مصفوفات اخرى تمثل الاجابات

يمكن عرض السؤال بتحديد رقم العنصر مثلا اظهار السؤال الاول مع الاجابات

trace( questions[0]) ::::
خلط عناصر المصفوفة shuffling حتى يتم عرض اسئلة مختلفة في كل مرة

ننشئ وظيفة الخلط (يوجد لغات برمجة امر خلط عناصر المصفوفة جاهز)

الوظيفة


function shuffling(original_array:Array):Array{

var shuffle_array:Array = new Array()

while (original_array.length>0){
var n:int= int(Math.randomRange (0,original_array.length))
shuffle_array.push(original_array[n])
original_array.splice(n, 1)
}


return (shuffle_array )
}


شرح التعليمات

بداية عرفنا الوظيفة shuffling لتستقبل وسيط واحد عبارة عن المصفوفة الاصلية المراد خلط عناصرها عشوائيا

السطر الاول : الاعلان عن مصفوفة نضع فيها العناصر بعد الخلط(الترتيب العشوائي)
السطر الثاني : بدء دوارة بعدد عناصر المصفوفة الاصلية ممكن تستخدم while او for
نستخدم for في حال معرفتنا بنقطة البداية و النهاية واذا كان هناك حاجة لقيمة عدد الدورات ..هنا لا نحتاج لذلك
While تستمر حتى يتم تفريغ (حذف) جميع عناصر المصفوفة الاصلية

السطر الثالث : نختار رقم عشوائي صحيح في حدود حجم المصفوفة الاصلية (ضمن فترة عدد العناصر) في المثال عدد عناصر المصفوفة 3 : صفر -واحد-اثنان (اي ثلاثة اسئلة)
السطر الرابع : نضيف العنصر الذي تم اختياره عشوائيا في مصفوفة العناصر المخلوطة التي اعلنا عنها في السطر الاول
السطر الخامس : نحذف ذلك العنصر من المصفوفة الاصلية

و هكذا تستمر الدوارة الى ان ننتهي من جميع عناصر المصفوفة الاصلية في كل مرة نختار رقم عشوائي لاحد عناصرها ثم نضيف ذلك العنصر للمصفوفة المرتبة عشوائيا (مخلوطة) و نحذفه من الاصلية

السطر الاخير يعني أن الوظيفة (الدالة ) التي عرفناها ستعود لنا بمصفوفة للعناصر مرتبة عشوائيا


نستدعي الوظيفة السابقة بالشكل التالي


questions=shuffling(questions)


الكود كاملا




var questions:Array=new Array

onSelfEvent (load) {
questions[0]="ماهي عملة فرنسا؟*فرنك*مارك*ليرة"
questions[1]="عكس كلمة سعيد*حزين*مبتهج*نشيط"
questions[2]="ما اسم أول قمر صناعي؟*سبوتنك1*ابولو11*تشالن جر"
questions=shuffling(questions)
trace( questions[0])
}
//////////////////////////////////////////////////////////////////
function shuffling(original_array:Array):Array{

var shuffle_array:Array = new Array()

while (original_array.length>0){
var n:int= int(Math.randomRange (0,original_array.length))
shuffle_array.push(original_array[n])
original_array.splice(n, 1)
}


return (shuffle_array )
}


لاحظ ان العنصر الاول يتغير في كل مره يعمل فيها الفلاش (تظهر النتيجة في نافذة معالجة الاخطاء debug window


كيف نفصل السؤال عن بدائل الاجابة ؟ (لاحظ ان الاجابة التالية للسؤال هي الاجابة الصحيحة. يمكنك تغيير ترتيبها اذا شئت)

لفصل السؤال و بدائل الاجابة نستخدم split بدلالة علامة الستار * يمكنك استخدام اي رمز آخر




list=questions[current_question].split("*")
list:مصفوفة عناصرها هي مكونات النص بالترتيب


للتحقق من اجابة المستخدم نقارن اجابته بقيمة العنصر الثاني (رقم 1)
list[1]الذي يمثل الاجابة الصحيحة

يتم عرض الاسئلة واحدا تلو الاخر و ذلك بتعريف متغير يزيد في كل مرة واحد بشرط ان لا يتجاوز عدد عناصر مصفوفة الاسئلة
فإذا زاد عنها يعود للقيمة صفر و هكذا

الكود كاملا مع وظيفة عرض الاسئلة


var questions:Array=new Array //مصفوفة الاسئلة
var current_question:int=0 //متغير رقم السؤال الحالي
onSelfEvent (load) {
//اضافة الاسئلة
questions[0]="ماهي عملة فرنسا؟*فرنك*مارك*ليرة"
questions[1]="عكس كلمة سعيد*حزين*مبتهج*نشيط"
questions[2]="ما اسم أول قمر صناعي؟*سبوتنك1*ابولو11*تشالن جر"


//استدعاءوظيفة
//خلط عناصر المصفوفة
questions=shuffling(questions)



}
//////////////////////////////////////////////////////////////////
function shuffling(original_array:Array):Array{
//وظيفة خلط الاسئلة
var shuffle_array:Array = new Array()

while (original_array.length>0){
var n:int= int(Math.randomRange (0,original_array.length))
shuffle_array.push(original_array[n])
original_array.splice(n, 1)
}


return (shuffle_array )
}

//////////////////////////////////////
function show_q(){
//وظيفة عرض الاسئلة و بدائل الاجابة

var list:Array=new Array
list=questions[current_question].split("*")

current_question++

//لاحظ اننا نطرح واحد من طول المصفوفة و السبب ان ترقيم العناصر يبدء من الرقم صفر
if(current_question> questions.length-1){current_question=0}





//اظهرها في ادوات النص
textbox1.text=list[0]
textbox2.text=list[1]
textbox3.text=list[2]
textbox4.text=list[3]
}
المثال مرفق :

ملاحظة نعيد خلط الاجابات بنفس الطريقة حتى لا تعرض دائما بنفس الترتيب




بالنسبة لعدد اللاعبين ...نعرف اللاعب من قيمة المتغير لكل لاعب رقم بامكانك مثلا تعريف متغير عددي player عند البدء يختار رقم عشوائي بين 1 و 4
ثم يبدء يزيد واحد عقب كل سؤال فإذا زاد عن 4 يعود للقيمة 1 اي اللاعب الاول



رفعت لكم مجموعة رائعة من مشاريع المسابقات التى من نوع الاختيار من متعدد

http://www.gulfup.com/?5b9BCD

امرغاد
30-07-2014, 08:55 PM
بسم الله الرحمن الرحيم الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

abohmam
30-07-2014, 11:26 PM
وعليكم السلام ورحمة الله وبركاته

شـكــ وبارك الله فيك ـــرا لك

لك مني أجمل تحية .

أبو يوسف
31-07-2014, 06:36 PM
جزاك الله خيرا وبارك الله فيك اخانا الكريم

أبو فارس
01-08-2014, 03:26 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

ودالثورة
02-08-2014, 08:59 AM
السلام عليكم ورحمة الله وبركاته
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

رضوان التازي
16-08-2014, 12:34 AM
السلام عليكم ورحمة الله وبركاته . جزاك الله خيرا

الهمام
20-08-2014, 01:47 PM
موفق بإذن الله ... لك مني أجمل تحية .

محـمد
01-11-2014, 10:03 AM
جزاك الله كل خير ...

وليدفوده
15-11-2014, 07:05 PM
:abc_139: بسم الله الرحمن الرحيم شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

المبرمج المبتدئ
12-12-2014, 09:08 PM
ما شاء الله

غندورة البطة
04-03-2015, 07:54 PM
مشكوووووووووووووووووووووو ووووووور اخي على الموضوع الرائع

حسام صالح
07-03-2015, 10:56 AM
السلام عليكم ورحمة الله وبركاته
جزاك الله كل خير

احمد عماره
26-03-2015, 02:10 PM
جزاك الله خيرا وبارك الله فيك

نجوم ليبيا
16-09-2015, 08:12 AM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

راندا رافت
18-09-2015, 12:19 AM
جزاك الله كل خير

راندا رافت
18-09-2015, 12:21 AM
شرح رائع جدا جدا جزاك الله كل خير

سمير نبيل
02-10-2015, 10:54 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

الحارث بن فيصل
06-10-2015, 03:19 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية . موفق بإذن الله ... لك مني أجمل تحية .

الوردانى
17-12-2015, 07:51 PM
شششششششششششششششششكككككككك كككككككككككككككككككرررررر رررررا

اميجو
09-01-2016, 09:44 PM
مشكوووووووووور

غشام بو
19-01-2016, 12:35 PM
بسم الله الرحمن الرحيم والصلاة والسلام على النبي الكريم

ألف شكر للأستاذ براء............. الكلمات لا تكفيه

سحووووره
09-02-2016, 05:22 PM
ششششششششششششكرا

زهراوي
24-03-2016, 05:12 PM
بسم الله الرحمن الرحيم
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

ابو ابتهال
09-04-2016, 10:50 AM
مشكوووووووووووووور

وائل وهيب
19-04-2016, 05:43 PM
شكراااااااااااااااا

حسن الجيلانى
19-12-2016, 12:36 AM
جزاك الله خيرا

علي قد حالي
02-03-2017, 02:14 AM
السلام عليكم ورحمة الله وبركاته
الرابط لا يعمل
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

سمسم افندي
05-07-2017, 06:48 PM
:abc_114::abc_083:

هريدة
17-12-2017, 11:42 PM
Merci pour le travail rÉaliser et bon courage

بابوو
20-12-2017, 09:24 PM
thaaaaaaaaaaaaaaaaanks

يوسف البراهيم
24-02-2018, 06:06 AM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .