From Test-Scratch-Wiki
() रोकना ()? ब्लॉक एक बूलियन ब्लॉक और एक ऑपरेटर ब्लॉक है। ब्लॉक यह बताता है कि पहले पैरामीटर के टेक्स्ट में दूसरे पैरामीटर का टेक्स्ट है या नहीं। तुलना केस-संवेदी नहीं है.
उदाहरण उपयोग
यह जांचना कि क्या इनपुट में एक निश्चित स्ट्रिंग है - सॉफ्ट-चेकिंग के लिए उपयोगी है क्योंकि वास्तविक इनपुट बिल्कुल समान नहीं हो सकता है:
when green flag clicked
switch costume to (bunny v)
ask [What's this animal?] and wait
if <(answer) contains [bunny]?> then //सम्मिलित ब्लॉक का उपयोग इसके बराबर के बजाय किया जाता है क्योंकि उपयोगकर्ता कह सकता है "ए बन्नी"
say [Correct!]
else
say [Nope!]
end
केस संवेदनशीलता
यह ब्लॉक केस संवेदी नहीं है. उदाहरण के लिए:
<[apple banana] contains [apple]?> //रिपोर्ट सच है <[apple banana] contains [APPLE]?> // रिपोर्ट सच है <[apple banana] contains [Apple]?> // रिपोर्ट सच है
विशेष मामले
यदि दूसरा तर्क खाली है, तो यह ब्लॉक हमेशा सत्य रिपोर्ट करेगा।
समाधान
define (string1) contains (string2)::custom
set [i v] to [0]
set [j v] to [1]
repeat (length of (string1))
change [i v] by (1)
if <(letter (i) of (string1)) = (letter (j) of (string2))> then
set [j v] to [1]
repeat until <<not <(letter ((i) + (j)) of (string1)) = (letter (j) of (string2))>> or <(j) > (length of (string2))>>
change [j v] by (1)
end
if <(j) > (length of (string2))> then
set [result v] to [true]
stop [this script v]
end
end
end