احمدعمار
30-07-2014, 02: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
السلام عليكم ورحمة الله وبركاته
نبدأ من طريقة كتابة الاسئلة ( من الممكن ان تكون الاسئلة في ملف خارجي سواء كان قاعدة بيانات 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