1 ضمیمه
اعداد رندوم كاملا غير تكراري
اين برنامه رو قبلا ها گذاشته بودن توي فروم اما من لازم دونستم كه تو بخش بازي ها هم باشه چون خيلي نيازه و مرتبط:قلب:
همينطور كه مي دونين تو وي بي نمي تونيم اعداد رندوم واقعي داشته باشيم حتي با تابع Rnd :عصبانی:
اين برنامه به شما كمك مي كنه كه اعداد رندوم كاملا غير تكراري داشته باشين:قهقهه:
اميد وارم اين برنامه شما رو براي ساخت بازي هاي بهتر كمك كنه:تشویق:
نقل قول: اعداد رندوم كاملا غير تكراري
نقل قول:
همينطور كه مي دونين تو وي بي نمي تونيم اعداد رندوم واقعي داشته باشيم حتي با تابع Rnd
چرا؟ چرا تابع Rnd اعداد تصادفی واقعی تولید نمیکنه؟
تو برنامه ای هم که قرار دادید از همین تابع استفاده شده، ولی هدف برنامه چیز دیگریست، یک جور سفارشی کردن تولید اعداد تصادفی در بازه مشخص با تعداد مشخص. همین.
این کد، بخشی از برنامه هست که اعداد تصادفی رو تولید میکنه:
Repeat:
Rand_Num = Rnd() * Max
Rand_Num = Rand_Num + Max '//Go Number larger than max
Do While (Rand_Num < Min Or Rand_Num > Max)
Rand_Num = Rand_Num - (Max - Min) '// IF Rand number is out of range , come it in range
Loop
If In_Array_X(Result, Rand_Num, i) = False Then '//IF Not exist then push it into array
Result(i) = Rand_Num
Else
GoTo Repeat
End If
این دستورات و حلقه ها دقیقاً معادل دستور زیر عمل می کنند:
Rand_Num = Rnd() * (Max - Min)
Rand_Num = Rand_Num + Min
کسی که کد رو نوشته، هدفش fit کردن عدد تولید شده در بازه مشخص شده هست. می بینید که نیازی به اون همه دستور و حلقه نیست. تنها اگر بدونیم تابع Rnd کارش تولید یک عدد تصادفی در بازه 0 و 1 هست، همین کافیست تا به دو خط دستور بالا برسیم.
موفق باشید/
نقل قول: اعداد رندوم كاملا غير تكراري
زماني كه من VB كار مي كردم ابتداي برنامه مي نوشتيم Randomize و rnd بر پايه زمان ساخته مي شد، لذا غير تكراري به دست ميومد!
نقل قول: اعداد رندوم كاملا غير تكراري
نقل قول:
نوشته شده توسط
xxxxx_xxxxx
کسی که کد رو نوشته، هدفش fit کردن عدد تولید شده در بازه مشخص شده هست. می بینید که نیازی به اون همه دستور و حلقه نیست. تنها اگر بدونیم تابع Rnd کارش تولید یک عدد تصادفی در بازه 0 و 1 هست، همین کافیست تا به دو خط دستور بالا برسیم.
موفق باشید/
منظور شما رو متوجه نشدم
يعني اون يارو يي كه كد رو نوشت بيكار بود همون دو خط كافيه
لطفا اگه ميشه درباره اعداد رندوم بيشتر توضيح بدين
نقل قول: اعداد رندوم كاملا غير تكراري
نقل قول:
منظور شما رو متوجه نشدم
من میگم هدف این برنامه چیز دیگریست. هدف تولید اعداد تصادفی در یک بازه مشخص و غیرتکراری هست و البته همراه با محاسبات اضافی. چون شما به صورت bold شده و بزرگ نوشتید که تو VB نمیشه اعداد تصادفی واقعی تولید کرد حتی با Rnd، ولی من گفتم میشه که اتفاقاً تو همین برنامه هم از همین تابع Rnd استفاده شده.
نقل قول:
يعني اون يارو يي كه كد رو نوشت بيكار بود همون دو خط كافيه
اون دو خط برای تولید عدد در یک بازه مشخص هست وتکراری بودن اعداد بررسی نمیشه. اما در برنامه ای که گذاشتید یکی از اهدافش غیر تکراری بودن اعداد تولید شده هست که با یک حلقه ساده میشه این بررسی رو انجام داد.
نقل قول:
لطفا اگه ميشه درباره اعداد رندوم بيشتر توضيح بدين
قبلاً در اینباره گفتگو شده اگر لینکش رو پیدا کردم در همین پست قرار میدم، چیز خاصی نداره، توضیحات بیشتر رو میتونید از MSDN پیدا کنید.
نقل قول:
زماني كه من VB كار مي كردم ابتداي برنامه مي نوشتيم Randomize و rnd بر پايه زمان ساخته مي شد، لذا غير تكراري به دست ميومد!
بله، کاملاً حق با شماست، اما فرض بر این هست که از Randomize استفاده شده. چون تو برنامه ای که ایشون قرار دادن وجود داره!
نقل قول: اعداد رندوم كاملا غير تكراري
نقل قول:
همينطور كه مي دونين تو وي بي نمي تونيم اعداد رندوم واقعي داشته باشيم حتي با تابع Rnd
منظور و هدف من از اين پست استفاده بازي نويس هاي vb بود و براي بازي سازي اعداد رندوم غير تكراري اي لازم داريم كه با باز شدن دوباره برنامه همون اعداد ظاهر نشن كه من اسمش رو گذاشتم اعداد رندوم واقعي
(با تابع rnd به صورت ساده ، اگه برنامه رو ببنديم و دوباره باز كنيم ، اعداد تكرار ميشن)
بله من متوجه هستم كه تو همون ضميمه هم از Rnd استفاده شده ولي كار من كه دارم يه بازي طراحي مي كنم همون اعداد رندوم واقعي است
مرسي/
نقل قول: اعداد رندوم كاملا غير تكراري
خب اعداد Random واقعی رو همون Randomize منجربه تولیدش میشه که در پست سوم بهش اشاره شده.
در برنامه شما هم Rnd وجود دارد و هم Randomize . پس اعداد کاملاً تصادفی ایجاد میشند.
نقل قول: اعداد رندوم كاملا غير تكراري
نقل قول:
نوشته شده توسط
earse+erse
(با تابع rnd به صورت ساده ، اگه برنامه رو ببنديم و دوباره باز كنيم ، اعداد تكرار ميشن)
نقل قول:
نوشته شده توسط
xxxxx_xxxxx
در برنامه شما هم Rnd وجود دارد و هم Randomize . پس اعداد کاملاً تصادفی ایجاد میشند.
حرف شما كاملا درسته . . . ما هر دو داريم يك حرف ميزنيم ولي فكر مي كنيم كه طرف مقابل يه چيز ديگه ميگه
بله برنامه من هم Rnd وجود دارد و هم Randomize . پس اعداد کاملاً تصادفی ایجاد میشند و اين رو ضميمه كردم تا دوستان تازه كار بتونن بدون دردسر اعداد تصادفي كاملا غير تكراري ايجاد كنن