[rainbow]بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته [/rainbow]
[gdwl]
[grade="FF7F50 2E8B57 00BFFF D2691E"]رفعت لكم مجموعة رائعة من مشاريع المسابقات التى من نوع الاختيار من متعدد[/grade]
[hide]http://www.gulfup.com/?5b9BCD
[/hide]
السلام عليكم ورحمة الله وبركاته [/rainbow]
[gdwl]
نبدأ من طريقة كتابة الاسئلة ( من الممكن ان تكون الاسئلة في ملف خارجي سواء كان قاعدة بيانات mdb او ملف نصي...)
الخطوة الاولى نعلن عن المصفوفة و لتكن questions
ثم نكتب عناصرها ( الاسئلة)
لايوجد طريقة محددة لكتابة الاسئلة .. بامكانك مثلا حجز مصفوفة للاسئلة و مصفوفات اخرى تمثل الاجابات
يمكن عرض السؤال بتحديد رقم العنصر مثلا اظهار السؤال الاول مع الاجابات
::::
خلط عناصر المصفوفة shuffling حتى يتم عرض اسئلة مختلفة في كل مرة
ننشئ وظيفة الخلط (يوجد لغات برمجة امر خلط عناصر المصفوفة جاهز)
الوظيفة
شرح التعليمات
بداية عرفنا الوظيفة shuffling لتستقبل وسيط واحد عبارة عن المصفوفة الاصلية المراد خلط عناصرها عشوائيا
السطر الاول : الاعلان عن مصفوفة نضع فيها العناصر بعد الخلط(الترتيب العشوائي)
السطر الثاني : بدء دوارة بعدد عناصر المصفوفة الاصلية ممكن تستخدم while او for
نستخدم for في حال معرفتنا بنقطة البداية و النهاية واذا كان هناك حاجة لقيمة عدد الدورات ..هنا لا نحتاج لذلك
While تستمر حتى يتم تفريغ (حذف) جميع عناصر المصفوفة الاصلية
السطر الثالث : نختار رقم عشوائي صحيح في حدود حجم المصفوفة الاصلية (ضمن فترة عدد العناصر) في المثال عدد عناصر المصفوفة 3 : صفر -واحد-اثنان (اي ثلاثة اسئلة)
السطر الرابع : نضيف العنصر الذي تم اختياره عشوائيا في مصفوفة العناصر المخلوطة التي اعلنا عنها في السطر الاول
السطر الخامس : نحذف ذلك العنصر من المصفوفة الاصلية
و هكذا تستمر الدوارة الى ان ننتهي من جميع عناصر المصفوفة الاصلية في كل مرة نختار رقم عشوائي لاحد عناصرها ثم نضيف ذلك العنصر للمصفوفة المرتبة عشوائيا (مخلوطة) و نحذفه من الاصلية
السطر الاخير يعني أن الوظيفة (الدالة ) التي عرفناها ستعود لنا بمصفوفة للعناصر مرتبة عشوائيا
نستدعي الوظيفة السابقة بالشكل التالي
الكود كاملا
لاحظ ان العنصر الاول يتغير في كل مره يعمل فيها الفلاش (تظهر النتيجة في نافذة معالجة الاخطاء debug window
كيف نفصل السؤال عن بدائل الاجابة ؟ (لاحظ ان الاجابة التالية للسؤال هي الاجابة الصحيحة. يمكنك تغيير ترتيبها اذا شئت)
لفصل السؤال و بدائل الاجابة نستخدم split بدلالة علامة الستار * يمكنك استخدام اي رمز آخر
list:مصفوفة عناصرها هي مكونات النص بالترتيب
للتحقق من اجابة المستخدم نقارن اجابته بقيمة العنصر الثاني (رقم 1)
الذي يمثل الاجابة الصحيحة
يتم عرض الاسئلة واحدا تلو الاخر و ذلك بتعريف متغير يزيد في كل مرة واحد بشرط ان لا يتجاوز عدد عناصر مصفوفة الاسئلة
فإذا زاد عنها يعود للقيمة صفر و هكذا
الكود كاملا مع وظيفة عرض الاسئلة
المثال مرفق :
ملاحظة نعيد خلط الاجابات بنفس الطريقة حتى لا تعرض دائما بنفس الترتيب
بالنسبة لعدد اللاعبين ...نعرف اللاعب من قيمة المتغير لكل لاعب رقم بامكانك مثلا تعريف متغير عددي player عند البدء يختار رقم عشوائي بين 1 و 4
ثم يبدء يزيد واحد عقب كل سؤال فإذا زاد عن 4 يعود للقيمة 1 اي اللاعب الاول
[/gdwl]الخطوة الاولى نعلن عن المصفوفة و لتكن questions
كود PHP:
var questions:Array=new Array
كود PHP:
questions[0]="ماهي عملة فرنسا؟*فرنك*مارك*ليرة"
questions[1]="عكس كلمة سعيد*حزين*مبتهج*نشيط"
questions[2]="ما اسم أول قمر صناعي؟*سبوتنك1*ابولو11*تشالنجر"
يمكن عرض السؤال بتحديد رقم العنصر مثلا اظهار السؤال الاول مع الاجابات
كود PHP:
trace( questions[0])
خلط عناصر المصفوفة shuffling حتى يتم عرض اسئلة مختلفة في كل مرة
ننشئ وظيفة الخلط (يوجد لغات برمجة امر خلط عناصر المصفوفة جاهز)
الوظيفة
كود PHP:
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 : صفر -واحد-اثنان (اي ثلاثة اسئلة)
السطر الرابع : نضيف العنصر الذي تم اختياره عشوائيا في مصفوفة العناصر المخلوطة التي اعلنا عنها في السطر الاول
السطر الخامس : نحذف ذلك العنصر من المصفوفة الاصلية
و هكذا تستمر الدوارة الى ان ننتهي من جميع عناصر المصفوفة الاصلية في كل مرة نختار رقم عشوائي لاحد عناصرها ثم نضيف ذلك العنصر للمصفوفة المرتبة عشوائيا (مخلوطة) و نحذفه من الاصلية
السطر الاخير يعني أن الوظيفة (الدالة ) التي عرفناها ستعود لنا بمصفوفة للعناصر مرتبة عشوائيا
نستدعي الوظيفة السابقة بالشكل التالي
كود PHP:
questions=shuffling(questions)
كود PHP:
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 )
}
كيف نفصل السؤال عن بدائل الاجابة ؟ (لاحظ ان الاجابة التالية للسؤال هي الاجابة الصحيحة. يمكنك تغيير ترتيبها اذا شئت)
لفصل السؤال و بدائل الاجابة نستخدم split بدلالة علامة الستار * يمكنك استخدام اي رمز آخر
كود PHP:
list=questions[current_question].split("*")
للتحقق من اجابة المستخدم نقارن اجابته بقيمة العنصر الثاني (رقم 1)
كود PHP:
list[1]
يتم عرض الاسئلة واحدا تلو الاخر و ذلك بتعريف متغير يزيد في كل مرة واحد بشرط ان لا يتجاوز عدد عناصر مصفوفة الاسئلة
فإذا زاد عنها يعود للقيمة صفر و هكذا
الكود كاملا مع وظيفة عرض الاسئلة
كود PHP:
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 اي اللاعب الاول
[grade="FF7F50 2E8B57 00BFFF D2691E"]رفعت لكم مجموعة رائعة من مشاريع المسابقات التى من نوع الاختيار من متعدد[/grade]
[hide]http://www.gulfup.com/?5b9BCD
[/hide]
تعليق