مشکل با عدد راندوم

Mamadex

Member
سلام
آیا میشه وقتی که یه حلقه فور نکست هست و داخلش هم یه عدد راندوم تکرار میشه کاری کرد که عدد راندم برای دفعات بعد تکراری نباشه و اعداد ما قبل رو نیاره؟
مثل این

For i=1 To 8
r=RND(9)
Message("","r")
Next i

در ضمن اگر i بیشتر میشه نباید مسیج ( یا همان r ) عدد های قبلیش رو بیاره مثلا در صورتی که اعداد اتفاقی 4 و 6 را قبلآ آورده در مسیج بعدی نبایدمقدار r عدد 4 یا 6 بشود
بطور کلی اعداد از 1تا 8 نمایش داده شوند بدون تکرار (لزوما بترتیب نیستند)

من هر طور امتحان کردم نشد حتی با استفاده از آرایه و نوشتن if
اگه کسی میدونه بگه
ممنون
 
آخرین ویرایش:

aff - SEvEN

Banned
متاسفانه من که راهي پيدا نکردم ...

حالا ميدونيد من چي کار کردم ؟ ! ... يک کار واقعا ناشيانه ! ! !
ورداشتم حلقه رو تا بينهايت گسترش دادم و بعدش خيلي با مزه شدش ... مجبور شدم بيلدر رو با تسک منيجر ويندوز ببندمش . :-? ... اين يکي رو تا حالا به اين شکل امتحان نکرده بودم ... نمي خاستش دست از کارش بکشه .

به هر حال بيلدر هستش ديگه :wink:
 

Mamadex

Member
متاسفانه من که راهي پيدا نکردم ...

حالا ميدونيد من چي کار کردم ؟ ! ... يک کار واقعا ناشيانه ! ! !
ورداشتم حلقه رو تا بينهايت گسترش دادم و بعدش خيلي با مزه شدش ... مجبور شدم بيلدر رو با تسک منيجر ويندوز ببندمش . :-? ... اين يکي رو تا حالا به اين شکل امتحان نکرده بودم ... نمي خاستش دست از کارش بکشه .

به هر حال بيلدر هستش ديگه :wink:

ببین aff - SEvEN
اگه دکمه Esc رو می گرفتی مسیج کنسل می شد و پنجره هم بسته می شد (البته در بعضی مواقع انجامپذیر نیست)
در ضمن من که کد رو بصورت Infinity نداده بودم

----------------------------------
البته من بعد پست کردن همین متن بالایی امتحان کردم با Infinity که با گرفتن Esc پنجره نرفت و مدام تکرار میشد اما به کمک ماوس که روی دکمه close کلیک می کردم پنجره بسته شد بدون هیچ نیاز به تسک منيجر (اینم یه نکته ای بود برا خودش)
 
آخرین ویرایش:

silvercover

کاربر متخصص
توی تالار MMBForums که پرسیدین ، اینم جواب برای سایرین :

کد:
** Linear combination

For i=1 To 10

 Linear$=Linear$+CHAR(i)+'|'

Next i

** Producing random combination from linear

For i=1 To 10

 Count=GetArrayNum(Linear$,|)-1

 Random=RND(Count)+1

 Random$=Random$+GetArrayItem(Linear$,|,Random)+'|'

 Keyword$='|'+GetArrayItem(Linear$,|,Random)+'|'

 Pos=POS(Keyword$,Linear$)

 Length=LEN(Keyword$)-1

 If (Pos<>0) Then

   Linear$=StrDel(Linear$,Pos,Length)

 Else

   Linear$=StrDel(Linear$,1,Length)

 End

Next i

** How it can be used...

For i=1 To 10

 Number$=GetArrayItem(Random$,|,i)

 Number=VAL(Number$)

 Message("Number from non-repeating random combination:","Number")

Next i
 

Mamadex

Member
توی تالار MMBForums که پرسیدین ، اینم جواب برای سایرین :

کد:
** Linear combination

For i=1 To 10

 Linear$=Linear$+CHAR(i)+'|'

Next i

** Producing random combination from linear

For i=1 To 10

 Count=GetArrayNum(Linear$,|)-1

 Random=RND(Count)+1

 Random$=Random$+GetArrayItem(Linear$,|,Random)+'|'

 Keyword$='|'+GetArrayItem(Linear$,|,Random)+'|'

 Pos=POS(Keyword$,Linear$)

 Length=LEN(Keyword$)-1

 If (Pos<>0) Then

   Linear$=StrDel(Linear$,Pos,Length)

 Else

   Linear$=StrDel(Linear$,1,Length)

 End

Next i

** How it can be used...

For i=1 To 10

 Number$=GetArrayItem(Random$,|,i)

 Number=VAL(Number$)

 Message("Number from non-repeating random combination:","Number")

Next i

شانسو ببین ، تا پرسیدم چند ثانیه بعد رفرش کردم جواب رو dgilmour داد تا خواستم برم تو لینک کارت اینترنت تموم شد (وقتی پرسیدم شب بود و کیوسک ها هم بسته بودن) و همین چند دقیقه پیش (دقیقا قبل از نوشتن همین متن که صبح روز بعد باشه) رفتم بیرون یکی خریدم و جواب رو دیدم
به هر حال ... جواب خودش از قبل آماده بود فقط یه سرچ می خواست
لینک مطلب : http://www.mmbforums.com/ipb/index.php?s=&showtopic=15420&view=findpost&p=88783
بقیه هم استفاده کنند
 
آخرین ویرایش:

aff - SEvEN

Banned
شانسو ببین ، تا پرسیدم چند ثانیه بعد رفرش کردم جواب رو dgilmour داد تا خواستم برم تو لینک کارت اینترنت تموم شد (وقتی پرسیدم شب بود و کیوسک ها هم بسته بودن) و همین چند دقیقه پیش (دقیقا قبل از نوشتن همین متن) رفتم بیرون یکی خریدم و جواب رو دیدم

... :lol:

شما ... ! جالبين ... !
03537ad8de.gif


... !
 

Mamadex

Member
کامل کردن کد جناب dgilmour

برای کامل کردن کدی که silvercover گذاشته بود آخرش کد زیر رو باید بزارید
من کل کد رو تست کردم و در همه مواقع جواب میده ولی من یه چیزی بش اضافه کردم که بصورت قانونی کامل میشه و خود dgilmour (سازنده کد راندوم) هم تایید کرد
این کد رو باید آخر اسکریپت بزارید
کد:
Random$='0'
 
بالا