PDA

View Full Version : سوال: اجرای رندوم چند متد



investo
یک شنبه 04 شهریور 1397, 21:39 عصر
سلام
دوستان سوال من شاید خیلی مبتدی باشه ولی به هر حال من از منابع فارسی سی شارپ نتونستم جوابش رو پیدا کنم . لطفا راهنمایی کنید .

فرض کنیم من یکسری تابع دارم به شکل زیر

void Start()
{
Invoke ("a", 2);
}


در این تابع a نام متدی هست که فراخوانده میشه و 2 زمان تاخیر فراخوانی است . یعنی دوثانیه بعد از اجرای برنامه متد a فراخوانی میشه . حالا مثلا من یکسری از این توابع دارم .

void Start()
{ Invoke ("a", 2);}
{ Invoke ("d", 3); }
{ Invoke ("b", 4); }
{ Invoke ("c", 5); }
{ Invoke ("b", 6); }
{ Invoke ("d", 7); }
{ Invoke ("a", 8); }
{ Invoke ("c", 9); }
{ Invoke ("b", 10); }
{ Invoke ("a", 11); }
{ Invoke ("d", 12); }
{ Invoke ("a", 13); }


حالا من میخوام توابع بالا بصورت رندوم اجرا بشن . نه به ترتیبی که نوشته شدند . اما دو تا نکته هست . یکی اینکه مثل مثال بالا توابعی که متد تکراری رو فراخوانی میکنند پشت سر هم نیان . مثلا متد c دوبار پشت هم فراخوانی نشه . یکی هم اینکه بعد از اینکه چیدمان بالا بصورت رندم تغییر کرد و دوباره چیده شد زمانهای تاخیر هم دوباره چیره بشن . مثلا تابع ردیف نه که ده ثانیه تاخیر داره وقتی به صورت رندم به عنوان اولین تابع اجرا شد زمان تاخیرش بشه دو ثانیه مثل تابعی که الان اولین تابع هست . ممنون میشم راهنمایی بفرمائید . لطفا طوری راهنمایی کنید که یک مبتدی متوجه بشه . با تشکر

Mahmoud.Afrad
چهارشنبه 07 شهریور 1397, 23:11 عصر
یک مثال: https://stackoverflow.com/a/1262619

اما جلوگیری از تکرار پشت سر هم در مثال شما به خاطر عناصر تکراری در لیست کار رو مشکل میکنه.

قبل از هر چیزی به یک الگوریتم نیاز دارید که بتونید لیستی از آبجکت ها رو مطابق خواسته خودتون به هم بریزید(shuffling) حداقل باید بتونید به زبان فارسی الگوریتم را شرح بدید.