From Test-Scratch-Wiki
बेतरतीब चुनें () से () | |
pick random () to ()
| |
Category | ऑपरेटर |
Type | रिपोर्टर |
Introduced in | ११अक्टूबर०३ |
बेतरतीब चुनें () से () ब्लॉक एक ऑपरेटर ब्लॉक और एक रिपोर्टर ब्लॉक है। ब्लॉक एक छद्म यादृच्छिक संख्या देता है, जो पहले दिए गए नंबर से दूसरे तक होता है, जिसमें दोनों समापन बिंदु शामिल होते हैं। यदि दोनों संख्याएँ पूर्णांक हैं, तो लौटाई गई संख्या भी पूर्णांक होगी। उदाहरण के लिए, यदि १ और ३ सीमाएं थीं, तो ब्लॉक १, २ या ३ लौटा सकता है। यदि एक या दोनों संख्या एक फ्लोट है, तो लौटाई गई संख्या दोगुनी होगी। उदाहरण के लिए, यदि ०.१ और ०.१४ दिए गए थे, तो आउटपुट ०.१ और ०.१४ के बीच कोई भी संख्या हो सकती है, दशमलव बिंदु के बाद 17 अंकों तक (उदाहरण के लिए ०.१३५४५१०१६७३९८५७४२ )।
उदाहरण उपयोग
बेतरतीब चुनें () से () ब्लॉक चुनने के लिए कुछ सामान्य उपयोग हैं:
- यादृच्छिक स्तर बनाना
when I receive [generate v] go to x: (-50) y: (50) set [square v] to [1] repeat (121) replace item (square) of [level v] with (pick random (1) to (10)) change [square v] by (1) end set [square v] to [1] repeat (11) repeat (11) switch costume to (item (square) of [level v]) stamp change x by (10) change [square v] by (1) end go to x: (-50) y: ((y position) - (10)) end repeat until <not <(item (start) of [level v]) = [10]>> set [start v] to (pick random (1) to (121)) end switch costume to [player v] set [square v] to [1] go to x: (-50) y: (50) repeat until <(square) = (start)> if <(x position) = [50]> then go to x: (-50) y: ((y position) - (10)) else change x by (10) end change [square v] by (1) end broadcast [play v]
- यादृच्छिक आँकड़े सेट करना
set [hp v] to (pick random (25) to (100) )
- यादृच्छिक वस्तुओं का चयन करना
set [purchase v] to (item (pick random (1) to (9) ) of [grocery list v])
- एक स्प्राइट को एक यादृच्छिक पोशाक में सेट करना
switch costume to (pick random (1) to (7))
- एक निश्चित संभाव्यता के साथ कोई कार्य करना
if <(pick random (1) to (10)) = (1)> then ... end
समाधान
इस ब्लॉक के आसपास काम करने के लिए, स्क्रैचर को एक स्क्रिप्ट प्रोग्राम करनी होगी जो अप्रत्याशित संख्याएं देगी।
एक सरल समाधान संभावित संख्याओं के साथ एक सूची भरना है, और फिर किसी या यादृच्छिक पर पहले इनपुट सेट के साथ () ब्लॉक के आइटम () का उपयोग करना है। () ब्लॉक का आइटम (यादृच्छिक) एक अप्रत्याशित आइटम — चुनता है, इसलिए यदि चुनी गई सूची में सभी वांछित संख्याएं हैं, तो () ब्लॉक का आइटम () एक प्रभावी समाधान है:
when green flag clicked set [random number v] to (item (join [random] () ) of [list v] )
ऐसी स्क्रिप्ट हैं जो यादृच्छिक मान देने वाले किसी भी ब्लॉक का उपयोग किए बिना अप्रत्याशित संख्याएँ लौटा सकती हैं। इन स्क्रिप्ट्स को बनाने के लिए, ऐसे मान का उपयोग किया जाना चाहिए जो अप्रत्याशित हो, जैसे टाइमर। अन्य विकल्प हैं:
- किसी छिपे हुए स्प्राइट को लगातार स्क्रीन के चारों ओर घुमाना और उसके स्थान का उपयोग करना
- किसी वेरिएबल को लगातार बदलना और उसके वर्तमान मान का उपयोग करना
- पेन का रंग, शेड या साइज लगातार बदलते रहना और उसके मूल्य का उपयोग करना
फिर मूल्य के साथ एक स्क्रिप्ट बनाई जा सकती है, एक निरंतर गतिशील स्प्राइट के साथ एक उदाहरण:
set [random number v] to (x position)
हालाँकि, यह काफी सरल है। अधिक जटिल स्क्रिप्ट बनाई जा सकती हैं:
set [random number v] to ((x position) + (y position))
set [random number v] to ( round ( ( (y position) + ( (direction) * (2) ) ) / (3) ) )
![]() | इन विकल्पों से उत्पन्न यादृच्छिक संख्याएं बेतरतीब चुनें () से () ब्लॉक जितनी सटीक नहीं हो सकती हैं। |