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

مشاهدة النسخة كاملة : مساعدة في كود Random


منوبة
20-12-2015, 08:56 PM
السلام عليكم ورحمة الله وبركاته

كيفكم اخواني الكرام ؟ عسى ان شاء الله الجميع بالف خير

مشكلتي اني اقوم بعمل برنامج مسابقات اسئلة واجوبة ولقد قسمت الأسئلة الي اقسام عدة
منها اسلاميات ، أوائل ، عواصم ، حروف وكل حرف لحاله ، الي آخره .
مشكلتي اني اولا :
احب المتسابق يختار اول شيء عدد الاسئلة التي يريد من ( 50 سؤال ، 100 سؤال ، 150 سؤال )
ثانيا :
يكون له الخيار من خلال اما الضغط على رز اسئلة معينة وهذه امرها سهل المشكل لو اراد ان تكون الاسئلة تلقائية
كيف اجعل كود يختار له كل مرة من ملف TXT وفي نفس الوقت يعتمد الاجابة من TXT اخر مثال :
عندي ملف اسمه Seen_01 اجوبته في ملف ثاني اسمه Jeem_01
وكل اختصاصات الاسئلة فيهم Seen_01 و Jeem_01
السؤال كيف اجعل البرنامج يختار السؤال ويقارن جوابه كل مرة يغير الاختصاص فيها
ارجوا ان لا اكون قد عقدت الامر على الفهم
ولكم كل الشكر

:abc_152::abc_152:

عبد الهادي بهاب
20-12-2015, 09:10 PM
في استدعاء الاسئلة من ملف txt يكون من خلال مصفوفة و نفس الشيء باانسبة للاجابات اي انت تستدعي السطر الاول فارنه مع نفس السطر لملف الاجابة

منوبة
20-12-2015, 09:17 PM
في استدعاء الاسئلة من ملف txt يكون من خلال مصفوفة و نفس الشيء باانسبة للاجابات اي انت تستدعي السطر الاول فارنه مع نفس السطر لملف الاجابة

شكرا اخي المحترف مشكلتي ليست في سؤال واحد مشكلتي حين اختيار الاسئلة عشوائيا ، ابسط لك الامر
مثلا او طلع له سؤال في مجال رياضة مثلا المفروض يقارن الاجابة مع نفس السؤال في الرياضة وحين يعطيه سؤال في عواصم يقارن الجواب مع نفس السؤال في ملف عواصم وهكذا يعمل كل مرة يغير الاسئلة
شكرا لك اخي الفاضل
:abc_152::abc_152:

ثامر أبو بلقيس
20-12-2015, 09:54 PM
موفق بإذن الله ... لك مني أجمل تحية . :abc_138:

ثامر أبو بلقيس
20-12-2015, 10:24 PM
السلام عليكم ورحمة الله وبركاته

سأعطيك تلميح و أكمل الفكرة
استعمل ملف تكست واحد
في global functions
أكتب :
function split(pString, pPattern)
if string.find(pString,".") then
pString = string.gsub(pString,"%.","'.'")
end
if pPattern == "." then
pPattern = "'.'"
end
local Table = {}
local fpat = "(.-)" .. pPattern
local last_end = 1
local s, e, cap = pString:find(fpat, 1)
while s do
if s ~= 1 or cap ~= "" then
table.insert(Table,cap)
end
last_end = e+1
s, e, cap = pString:find(fpat, last_end)
end
if last_end <= #pString then
cap = pString:sub(last_end)
table.insert(Table, cap)
end
return Table
end


ضع ملف بتسمية tamer
مكتوب فيه الاسئلة و الاجوبة جنبا لجنب تفصل بينهما بنقطة
مثال :
المنتخب الإيطالي.ما هو المنتخب الذي فاز بنهائي كأس العالم 2006 ؟
جنوب أفريقيا.ما هي أول دولة أفريقية تستضيف نهائيات كأس العالم ؟
زين الدين زيدان.من هو اللاعب الفرنسي الذي طرد في المباراة النهائية لمونديال 2006 ؟
جوست فونتين.من هو أكثر اللاعبين تسجيلا للأهداف في بطولة وحيدة لكأس العالم ؟

ضع الان زر و سيظهر السؤال و الجواب بمتغيرين يمكنك توظيفهما حسب طبيعة المشروع
بتحدبد مكان ظهور السؤال و المقارنة مع متغير الجواب مع عنصر ادخال الجواب الصحيح
ليتم التقييم
result = TextFile.ReadToTable("AutoPlay\\Docs\\tamer.txt");
value = Math.Random(1, #result );
s=result[value]
----------------------------------------------------------
myDataTable = split(s,".")
Dialog.Message("Notice", myDataTable[2].."\r\n"..myDataTable[1]);

موفق

منوبة
21-12-2015, 09:56 AM
السلام عليكم ورحمة الله وبركاته

سأعطيك تلميح و أكمل الفكرة
استعمل ملف تكست واحد
في global functions
أكتب :
function split(pString, pPattern)
if string.find(pString,".") then
pString = string.gsub(pString,"%.","'.'")
end
if pPattern == "." then
pPattern = "'.'"
end
local Table = {}
local fpat = "(.-)" .. pPattern
local last_end = 1
local s, e, cap = pString:find(fpat, 1)
while s do
if s ~= 1 or cap ~= "" then
table.insert(Table,cap)
end
last_end = e+1
s, e, cap = pString:find(fpat, last_end)
end
if last_end <= #pString then
cap = pString:sub(last_end)
table.insert(Table, cap)
end
return Table
end


ضع ملف بتسمية tamer
مكتوب فيه الاسئلة و الاجوبة جنبا لجنب تفصل بينهما بنقطة
مثال :
المنتخب الإيطالي.ما هو المنتخب الذي فاز بنهائي كأس العالم 2006 ؟
جنوب أفريقيا.ما هي أول دولة أفريقية تستضيف نهائيات كأس العالم ؟
زين الدين زيدان.من هو اللاعب الفرنسي الذي طرد في المباراة النهائية لمونديال 2006 ؟
جوست فونتين.من هو أكثر اللاعبين تسجيلا للأهداف في بطولة وحيدة لكأس العالم ؟

ضع الان زر و سيظهر السؤال و الجواب بمتغيرين يمكنك توظيفهما حسب طبيعة المشروع
بتحدبد مكان ظهور السؤال و المقارنة مع متغير الجواب مع عنصر ادخال الجواب الصحيح
ليتم التقييم
result = TextFile.ReadToTable("AutoPlay\\Docs\\tamer.txt");
value = Math.Random(1, #result );
s=result[value]
----------------------------------------------------------
myDataTable = split(s,".")
Dialog.Message("Notice", myDataTable[2].."\r\n"..myDataTable[1]);

موفق

الله عليك يا ابو بلقيس دائما سباق روح الله يفتحها في وجهك ويرزقك الصحة والسلامة والخير الكثير
بجد انت كنز المنتدى مع بعض الاخوة ولولاكم ما كنا نحقق حلم عمل برامج شكرا جزيلا
:abc_152::abc_152:

ثامر أبو بلقيس
21-12-2015, 10:13 AM
جزيل الشكر .... لحظة قد نتخلى عن ملفات التكست :abc_138:

ثامر أبو بلقيس
21-12-2015, 10:20 AM
السلام عليكم ورحمة الله وبركاته
أكواد global functions السابقة تبقى هي نفسها
لكن كل قسم من الاسئلة خصص له ListBox مخفي مثلا أسئلة الرياضة
لها ListBox1 مخفي
ونكتب الأسئلة و الاجوبة بنفس الطريقة التي كنا نكتب بها في التكست أي السؤال و الجواب
مع بعض في سطر واحد تفصل بينهما بنقطة
صورة
http://store1.up-00.com/2015-12/145068773454871.jpg

كود :
result = ListBox.GetCount("ListBox1");
if result ~=0 then
value = Math.Random(1, result );
s= ListBox.GetItemText("ListBox1",value)
myDataTable = split(s,".")
Dialog.Message("Notice", myDataTable[2].."\r\n"..myDataTable[1]);
ListBox.DeleteItem("ListBox1", value);
end

تم حذف السؤال بعد طرحه حتى تتفادى التكرار هذه الطريقة أسهل و تتحكم فيها أكثر
:abc_138:

عبد الهادي بهاب
21-12-2015, 11:59 AM
موفق بإذن الله ... لك مني أجمل تحية .

تحية للاخوة المشاركين في هذا الحوار .......استفدنا كثيرا ........

هذ ملف قد يخدم الحوار بشكل جزئي .........في شق السؤال المتعلق باستدعاء نفس السطر من ملفين txt

http://up.top4top.net/downloadf-559co94fa61-rar.html

و من وجهة نظري الشخصية افضل طريقة ادماج الاسئلة في السييبوكس فهي احفظ للبرنامج و اسرع
:abc_023::abc_023:

منوبة
21-12-2015, 06:27 PM
السلام عليكم ورحمة الله وبركاته
أكواد global functions السابقة تبقى هي نفسها
لكن كل قسم من الاسئلة خصص له ListBox مخفي مثلا أسئلة الرياضة
لها ListBox1 مخفي
ونكتب الأسئلة و الاجوبة بنفس الطريقة التي كنا نكتب بها في التكست أي السؤال و الجواب
مع بعض في سطر واحد تفصل بينهما بنقطة
صورة
http://store1.up-00.com/2015-12/145068773454871.jpg

كود :
result = ListBox.GetCount("ListBox1");
if result ~=0 then
value = Math.Random(1, result );
s= ListBox.GetItemText("ListBox1",value)
myDataTable = split(s,".")
Dialog.Message("Notice", myDataTable[2].."\r\n"..myDataTable[1]);
ListBox.DeleteItem("ListBox1", value);
end

تم حذف السؤال بعد طرحه حتى تتفادى التكرار هذه الطريقة أسهل و تتحكم فيها أكثر
:abc_138:

يعجز اللسان عن الشكر انا دائما استفاد من خبراتك جعلها الله في ميزان حسناتك شكرا
:abc_152::abc_152:

منوبة
21-12-2015, 06:28 PM
موفق بإذن الله ... لك مني أجمل تحية .

تحية للاخوة المشاركين في هذا الحوار .......استفدنا كثيرا ........

هذ ملف قد يخدم الحوار بشكل جزئي .........في شق السؤال المتعلق باستدعاء نفس السطر من ملفين txt

http://up.top4top.net/downloadf-559co94fa61-rar.html

و من وجهة نظري الشخصية افضل طريقة ادماج الاسئلة في السييبوكس فهي احفظ للبرنامج و اسرع
:abc_023::abc_023:

الله عليك ملف حلو ومفيد بارك الله فيك ورحم الله والديك ووالدينا جميعا
:abc_152::abc_152:

ربيع
20-07-2016, 01:45 PM
موفق بإذن الله ... لك مني أجمل تحية .