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

مشاهدة النسخة كاملة : كيف اخلي نهاية القرعة تختلف من وقت الى اخر


يوسف البراهيم
23-01-2018, 01:53 PM
السلام عليكم
كيف اغير قيمة نهاية العداد

يعني مثلا مرة أريد القرعة يبدأ من 1 الى 30 و يختار لي رقم عشوائي
مرة اخرى أريد مثلا العداد يبدأ من 1 الى 40 و هكذا و تختار لي رقم عشوائي

يوجد ملف مفتوح

https://up.top4top.net/downloadf-753bw2161-rar.html

يوسف البراهيم
23-01-2018, 06:50 PM
الله يعطيكم العافية ضبطت معاي
بس السؤال في القرعة
كيف النتبجة اللي طلعت معاي
ما ابيها تطلع مرة ثانية

يوسف البراهيم
24-01-2018, 04:36 PM
السلام عليكم ورحمة الله وبركاته
?

عبد الهادي بهاب
24-01-2018, 05:39 PM
السلام عليكم ورحمة الله وبركاته
?

ظننت ان المشكل قد حل

يوسف البراهيم
24-01-2018, 05:48 PM
ظننت ان المشكل قد حل

بالنسبة كقرعة الحمد لله استطعت عملها
وكل هذا بفضل الله ومن ثم بتوجيهاتك

ولكن باقي مشكلة اذا طلع لي مثلا في القرعة الاولى رقم 5
لا اريد يظهر لي مرة اخرى هذا الرقم

عبد الهادي بهاب
24-01-2018, 06:13 PM
بالنسبة كقرعة الحمد لله استطعت عملها
وكل هذا بفضل الله ومن ثم بتوجيهاتك

ولكن باقي مشكلة اذا طلع لي مثلا في القرعة الاولى رقم 5
لا اريد يظهر لي مرة اخرى هذا الرقم

يمكن ان تستغل مشاركة الاستاذ ابو بلقيس

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



قلت لم تفهم منع التكرار في الدالة العشوائية جيد سأجيبك بطريقة اخرى
أكتب في global functions
function permute(tab, n, count)
n = n or #tab
for i = 1, count or n do
local j = math.random(i, n)
tab[i], tab[j] = tab[j], tab[i]
end
return tab
end
--------------

نفترض بأنه لديك إظهار عشوائي للأعداد من 10 الى 25
لكن بدون أن يتكرر ثانية أي رقم الى غاية انتهاء الحلقة
في العادة نستعمل
result = math.random(10, 25);
ولعلك أشرت لعيوبها
جيد لاحظ الكود التالي :
result = math.random(10, 25);
tab = {}
for i = 10,25 do
table.insert(tab, 1, i);
end
g =permute(tab, 25-10, 25-10)
for n,p in pairs(g) do
dialog.message("notice",p);
end


الدالة التكرارية تبدا من أول رقم 10 الى غاية 25 و هو المعلن عنه في السطر الاول اعلاه
ولاحظ 25-10 المكتوبة في الكود على مرتين هي عدد الأعداد المحصورة بين الرقمين
وهما مأخوذان لاستغلالهما في عدد المرات كذلك جرب الان ستظهر الاعداد عشوائبا
بعدد مرات مقدر بـ 25 - 10 و بدون أن يتكرر أحدهم أليس كذلك موفق :abc_138:

عبد الهادي بهاب
24-01-2018, 06:25 PM
ممكن حل مختصر

في البداية ... نشكل مصفوفة ارقام بارقام عشوائيا
ثم نختار منها تباعا
-------------------------------------------
في onshow نضع كود لتشكيل مصفوفة ارقام
اولا نشكل مصفوفة نسميها ala تضم الاعداد من 1 الى 30 بالترتيب بواسطة الكود
ala={}; for i=1,30 do ala[i] = i end


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

ali={};
for i=1,#ala do
gh = Math.Random(1,#ala);
ali[i] = ala[gh] ; Table.Remove(ala,gh);
end

--------------------------------------------
نضع ليبال مثلا لعرض العدد

في زر الاختيار نضع

for i=1,10 do
Application.Sleep(100);
Label.SetText("Label1", Math.Random(1,30));
end
Label.SetText("Label1", ali[1]);
Table.Remove(ali,1);



لاحظ حيدا الكود الاخير في الزر
الجزء الاول فقط من اجل حركة الارقام العشوائية في اليبال و يظهر كانه يبحث ........ يعني الكود لا يهم تماما يمكن الاستغناء عنه يمكن تمديد البحث اما بتغيير 10 الى 30 مثلا و تسريع مدة الدوران من 100 الى 50 او اقل


for i=1,10 do
Application.Sleep(100);
Label.SetText("Label1", Math.Random(1,30));
end



لكن ما يهم هو الجزء الاخير من الكود اي نستدعي العنصر الاول من المصفوفة ali ثم نمحيه حتى لا يتكرر



Label.SetText("Label1", ali[1]);
Table.Remove(ali,1);

يوسف البراهيم
24-01-2018, 06:52 PM
ممكن حل مختصر

في البداية ... نشكل مصفوفة ارقام بارقام عشوائيا
ثم نختار منها تباعا
-------------------------------------------
في onshow نضع كود لتشكيل مصفوفة ارقام
اولا نشكل مصفوفة نسميها ala تضم الاعداد من 1 الى 30 بالترتيب بواسطة الكود
ala={}; for i=1,30 do ala[i] = i end


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

ali={};
for i=1,#ala do
gh = Math.Random(1,#ala);
ali[i] = ala[gh] ; Table.Remove(ala,gh);
end

--------------------------------------------
نضع ليبال مثلا لعرض العدد

في زر الاختيار نضع

for i=1,10 do
Application.Sleep(100);
Label.SetText("Label1", Math.Random(1,30));
end
Label.SetText("Label1", ali[1]);
Table.Remove(ali,1);



لاحظ حيدا الكود الاخير في الزر
الجزء الاول فقط من اجل حركة الارقام العشوائية في اليبال و يظهر كانه يبحث ........ يعني الكود لا يهم تماما يمكن الاستغناء عنه يمكن تمديد البحث اما بتغيير 10 الى 30 مثلا و تسريع مدة الدوران من 100 الى 50 او اقل


for i=1,10 do
Application.Sleep(100);
Label.SetText("Label1", Math.Random(1,30));
end



لكن ما يهم هو الجزء الاخير من الكود اي نستدعي العنصر الاول من المصفوفة ali ثم نمحيه حتى لا يتكرر



Label.SetText("Label1", ali[1]);
Table.Remove(ali,1);


عزيزي
ما ضبطت معاي
هذا الملف اللي سويته للقرعة
كيف اعدل عليه
طبعا القرعة تبدأ من 1 و تنتهي الى حرف y متغير على حسب ما اريد
ولكن العدد يتكرر عندي
https://up.top4top.net/downloadf-754k4d221-rar.html

فرح صالحي
24-01-2018, 09:13 PM
ملف مفتوح باكواد الاخ عبد الهادي

عبد الهادي بهاب
24-01-2018, 09:45 PM
ملف مفتوح باكواد الاخ عبد الهادي

شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

فقط يجب ان تغير الليبال الى button

عبد الهادي بهاب
24-01-2018, 09:49 PM
عزيزي
ما ضبطت معاي
هذا الملف اللي سويته للقرعة
كيف اعدل عليه
طبعا القرعة تبدأ من 1 و تنتهي الى حرف y متغير على حسب ما اريد
ولكن العدد يتكرر عندي
https://up.top4top.net/downloadf-754k4d221-rar.html

تفضل

https://up.top4top.net/downloadf-754u9aa21-rar.html

يوسف البراهيم
25-01-2018, 03:19 AM
ملف مفتوح باكواد الاخ عبد الهادي



الله يعطيك العافية

طريقة الاستاذ عبدالهادي
انا جربتها و نجحت معاي من قبل

بس انا التعديل على الملف المفتوح الاخير في الرابط الاخير

يوسف البراهيم
25-01-2018, 03:24 AM
تفضل

https://up.top4top.net/downloadf-754u9aa21-rar.html

عزيزي عبدالهادي

انا عملت طريقتك و الامور طيبة
و لكن لو لاحظت الملف اللذي قمت انا بعمله و قمت انت بتعديله موجود به ابنبوت

الانبوت هذا اريد يكون فائدته في تغيير نهاية القرعة

يعني مثلا
لدي ثلاثة فصول
الفصل الاول عددهم 10 طلاب
الفصل الثاني عددهم 20
الفصل الثالث عددهم 15

ابي الملف في الفصل الاول فقط يعمي قرعة من 1 الى 10
الفصل الثاني يعمل قرعة 1 الى 20
في الفصل الثالث يعمل قرعة من 1 الى 15
وهكذا

وهذا استطعت عمله في هذا الملف
المشكلة الموجودة الان في الملف
هو أن كيف اخلي ناتج القرعة لا يتكرر


في هذا المفتوح
وهذا هو الملف مرة اخرى
https://up.top4top.net/downloadf-754k4d221-rar.html

الف شكر عزيزي

عبد الهادي بهاب
25-01-2018, 06:03 PM
عزيزي عبدالهادي

انا عملت طريقتك و الامور طيبة
و لكن لو لاحظت الملف اللذي قمت انا بعمله و قمت انت بتعديله موجود به ابنبوت

الانبوت هذا اريد يكون فائدته في تغيير نهاية القرعة

يعني مثلا
لدي ثلاثة فصول
الفصل الاول عددهم 10 طلاب
الفصل الثاني عددهم 20
الفصل الثالث عددهم 15

ابي الملف في الفصل الاول فقط يعمي قرعة من 1 الى 10
الفصل الثاني يعمل قرعة 1 الى 20
في الفصل الثالث يعمل قرعة من 1 الى 15
وهكذا

وهذا استطعت عمله في هذا الملف
المشكلة الموجودة الان في الملف
هو أن كيف اخلي ناتج القرعة لا يتكرر


في هذا المفتوح
وهذا هو الملف مرة اخرى
https://up.top4top.net/downloadf-754k4d221-rar.html

الف شكر عزيزي


و الامر هو هو بالنسبة لكل الفصول
اعني يكفي ان تضع ثلاث مصفوفات لكل فصل كرر كود onshow ثلاى مرات بتغيير الاسماء فقط ala1 ala2 ala3 و في كل منها انت تحدد من 1 الى 10 او 15 او 20
+ 3 ازرار و طبعا كل زر يختار من المصفوفة تبعه.
+ انبوت ضعه حيث تريد

يوسف البراهيم
26-01-2018, 07:07 PM
الله يعطيك العافية

يوسف البراهيم
29-01-2018, 02:36 PM
و الامر هو هو بالنسبة لكل الفصول
اعني يكفي ان تضع ثلاث مصفوفات لكل فصل كرر كود onshow ثلاى مرات بتغيير الاسماء فقط ala1 ala2 ala3 و في كل منها انت تحدد من 1 الى 10 او 15 او 20
+ 3 ازرار و طبعا كل زر يختار من المصفوفة تبعه.
+ انبوت ضعه حيث تريد

زين لو كان عندي 5 فصول أو أكثر
كل فصل بعمل له زر
مو حلووة

شنو الحل ؟

عبد الهادي بهاب
29-01-2018, 06:27 PM
زين لو كان عندي 5 فصول أو أكثر
كل فصل بعمل له زر
مو حلووة

شنو الحل ؟

اذن لكل فصل صغحة خاصة بالقرغة و ترتاح من كثرة الاحتمالات
او كوموبكس او ليسبوكس فيه فصول لما يختار فصل تجري القرعة

احمد فيصل
23-04-2018, 01:41 AM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

منار بربرة
17-01-2019, 04:24 PM
مشكر اخى لك كل التحية

نقطة حرف
20-01-2019, 10:53 PM
موفق بإذن الله ... لك مني أجمل تحية .