PDA

View Full Version : چگونگی ساخت برنامه قرعه کشی



pure_love
دوشنبه 01 شهریور 1400, 13:51 عصر
سلام بچه ها
من یه برنامه قرعه کشی تحت سی شارپ میخوام که گرافیکش شبیه سایت : https://pickerwheel.com/ باشه ، یعنی به صورت گردونه ای دور بخورد و یک نفر انتخاب کند....
ولی میخام یه فرقی داشته باشه!
من یه سری کد دارم که هر کدام با شماره های خاصی شروع میشن و مربوط به بخش های مختلف هستند .! برای مثال :
ما 5 بخش داریم :
شمارنده بخش اول : 10
شمارنده بخش دوم : 11
شمارنده بخش سوم : 12
شمارنده بخش چهارم : 13
شمارنده بخش پنجم : 14
و کد هام :
102211 ، 102365 ، 112541 ، 126598 ، 130212 ، 142549 و....
میخام یه برنامه قرعه کشی بنویسم بین همه بخش ها به صورت رندم یک نفر انتخاب کند و پس از انتخاب کد های مربوط به آن بخش حذف شوند و نفر بعدی بین بقیه بخش ها قرعه کشی شود.... یعنی در قرعه کشی از هر بخش یک نفر برنده داشته باشیم.
چگونه میتوانم اینکار انجام دهم؟

Salar Ashgi
دوشنبه 01 شهریور 1400, 15:37 عصر
سلام. روش ها زیاده ، روشی که بنده رفتم این اعداد شمارنده ها رو قرار میدیم داخل آرایه ، همین 10و11و12 و ...

بعد تو لیست اعداد ، اعداد رو بر اساس همین شمارنده بالایی ها فیلتر می کنیم و بین شون قرعه کشی انجام میدیم.

نکته اینجاست تو هر بار فیلتر کردن داخل لیست می ریزیم شون و بعد قرعه کشی لیست باید خالی بشه برای قرعه کشی

بخش بعدی.


string[] ar = { "101125", "102536", "103652", "115269", "114585", "114252","116391","126363", "129854", "124181", "136452", "134174", "139685", "132293" };
string[] keys = { "10", "11", "12", "13" };
List<string> list = new List<string>();
string res = "";
Random r = new Random();
foreach (string s1 in keys)
{
foreach(string s2 in ar)
{
if(s2.Contains(s1))
{
list.Add(s2);
}
}
res += list[r.Next(0, list.Count)] + "\n";
list.Clear();
}
Console.WriteLine(res);
//By Salar Ashgi


خروجی
https://s19.picofile.com/file/8439760834/2021_08_23_160423.png

pure_love
دوشنبه 01 شهریور 1400, 16:31 عصر
سلام. روش ها زیاده ، روشی که بنده رفتم این اعداد شمارنده ها رو قرار میدیم داخل آرایه ، همین 10و11و12 و ...

بعد تو لیست اعداد ، اعداد رو بر اساس همین شمارنده بالایی ها فیلتر می کنیم و بین شون قرعه کشی انجام میدیم.

نکته اینجاست تو هر بار فیلتر کردن داخل لیست می ریزیم شون و بعد قرعه کشی لیست باید خالی بشه برای قرعه کشی

بخش بعدی.


string[] ar = { "101125", "102536", "103652", "115269", "114585", "114252","116391","126363", "129854", "124181", "136452", "134174", "139685", "132293" };
string[] keys = { "10", "11", "12", "13" };
List<string> list = new List<string>();
string res = "";
Random r = new Random();
foreach (string s1 in keys)
{
foreach(string s2 in ar)
{
if(s2.Contains(s1))
{
list.Add(s2);
}
}
res += list[r.Next(0, list.Count)] + "\n";
list.Clear();
}
Console.WriteLine(res);
//By Salar Ashgi


خروجی
https://s19.picofile.com/file/8439760834/2021_08_23_160423.png


میشه بیشتر توضیح بدید؟
آخه من میخام برنامه بنویسم که بدم مشتری ، بعد کد ها زیاده و تو فایل اکسله! و شمارنده ها باید جوری باشه وارد تکست باکس یا چک لیستی چیزی بریزم و....
و اون چرخونه چجوری بنویسم که دور بخوره و.... یا اینکه یه صفحه loading بیاد....
در ضمن اینکه میخام همشون اتوماتیک باشه !
مثلا کاربر بیاد شمارنده هاش و تعداد کد ها ( شاید 500 تا باشه باید با اکسل وارد بشه ) وارد کنه و قرعه کشی کنه! و وقتی اولین کد در اومد ، برای قرعه کشی کد بعدی ، اول اون تعداد کد های شمارنده ها را از لیست حذف کنه و دوباره بین بقیه کد ها قرعه کشی کنه!

pure_love
شنبه 06 شهریور 1400, 07:55 صبح
بچه ها کسی نیست جواب بده ؟
خیلی لازم دارم

336699
شنبه 06 شهریور 1400, 11:38 صبح
سلام
شما برنامه ویندوزی میخواهید بسازید و یا وب سایت میخواهید بسازید؟

البته ساخت وب سایت نسبت به برنامه ویندوزی دنگ و فنگش بیشتره.

pure_love
یک شنبه 07 شهریور 1400, 09:36 صبح
سلام
شما برنامه ویندوزی میخواهید بسازید و یا وب سایت میخواهید بسازید؟

البته ساخت وب سایت نسبت به برنامه ویندوزی دنگ و فنگش بیشتره.

نه ویندوز با سی شارپ

336699
یک شنبه 07 شهریور 1400, 11:57 صبح
در مورد اون صفحه دایره ای قرعه کشی
اون برای زمانی هست که چند جایزه متفاوت داریم و قرعه کشی بین یک نفر انجام میشه و اون شخص یکی از جایزه های موجود روی دایره رو برنده میشه.

اما الان ظاهرا تهداد شرکت کنندگان بالاست و شما میخواهید شماره شرکت کننده گان رو روی دایره بنویسید

خب اگه تعداد زیاد باشه که دیگه هیچی روی اون دایره مشخص نمیشه.
بهتره یه انیمیشن دیگه رو برای قرعه کشی درنظر بگیرید.

pure_love
دوشنبه 08 شهریور 1400, 09:50 صبح
بچه ها کسی نیست راهنمایی کنه ؟