From Test-Scratch-Wiki
| उपयोगकर्ता नाम | |
username
| |
| Category | महसूस |
| Type | रिपोर्टर |
| Introduced in | २.० |
उपयोगकर्ता नाम ब्लॉक एक महसूस ब्लॉक और एक रिपोर्टर ब्लॉक है। यह प्रोजेक्ट को देखने वाले यूजर के यूजरनेम की रिपोर्ट करता है, जिसका इस्तेमाल किसी प्रोजेक्ट में प्रगति को सहेजने के लिए किया जा सकता है, या तो एक वैरिएबल एनकोडर या क्लाउड लिस्ट (एक बार जब वे स्ट्रिंग-स्टोरेज क्षमताओं के साथ जारी किए जाते हैं), साथ ही अन्य उद्देश्यों के लिए भी। यदि कोई यूजर साइन इन नहीं है, तो यह ब्लॉक खाली स्ट्रिंग लौटाता है।
विवाद
मूल रूप से, स्क्रैच टीम इस ब्लॉक को जोड़ने के लिए अनिच्छुक थी क्योंकि यह उपयोगकर्ताओं की गोपनीयता से समझौता कर सकता था। उन्होंने यूजर आईडी ब्लॉक से शुरुआत की, जिसने किसी विशिष्ट प्रोजेक्ट के लिए उपयोगकर्ताओं को पहचानने का एक अनाम लेकिन प्रभावी तरीका दिया।[1] हालांकि, उन्होंने अंततः इसे इस ब्लॉक से बदलने का फैसला किया क्योंकि शुरुआती लोगों के लिए इसे समझना आसान है और इसे अक्सर अनुरोध किया जाता था।[citation needed]
सभी प्रोजेक्ट जिनमें यूजरनेम ब्लॉक होता है, वे प्रोजेक्ट चलाने वाले यूजर को इसके बारे में सूचित करेंगे। हालाँकि, किसी प्रोजेक्ट को इस्तेमाल करने से पहले साइन आउट करके गुमनाम रूप से खेलना संभव है, हालाँकि इसका मतलब है कि क्लाउड डेटा जैसी कुछ सुविधाएँ उपलब्ध नहीं होंगी। एक बग हुआ करता था जिसके कारण संदेश दिखाई देता था यदि बैकपैक में यूजरनेम ब्लॉक वाली स्क्रिप्ट होती थी, भले ही प्रोजेक्ट में यूजरनेम ब्लॉक न हो।[2]
संभावित दुरुपयोग
इस ब्लॉक का दुरुपयोग संभावित है, जैसे कि कुछ उपयोगकर्ताओं को सामग्री छिपाना (या चुनिंदा रूप से अपमानजनक/अनुचित सामग्री दिखाना)। यदि किसी उपयोगकर्ता को इस ब्लॉक का संभावित दुरुपयोग करने वाला कोई प्रोजेक्ट मिलता है, तो उन्हें प्रोजेक्ट की रिपोर्ट करनी चाहिए।
उदाहरण उपयोग
- किसी प्रोजेक्ट पर जाने वाले उपयोगकर्ता का अभिवादन करना
say (join [Hi, ] (username))
- क्लाउड डेटा का उपयोग करके यह जाँच करना कि उपयोगकर्ता पहले भी आ चुका है या नहीं। क्लाउड सूचियाँ स्क्रैच में आधिकारिक सुविधा नहीं हैं, लेकिन उन्हें अक्सर संख्यात्मक एन्कोडिंग के साथ सिम्युलेट किया जाता है।
if <not <[☁ visitors v] contains (username)>> then add (username) to [☁ visitors v] say (join[Hi,](join(username)[!])) else say (join[Welcome back again, ](join(username)[!])) end
- यह जाँच करना कि दर्शक लॉग इन है या नहीं
when green flag clicked if <(username) = []> then//लॉग ऑफ उपयोगकर्ता रिक्त प्रतिक्रिया की रिपोर्ट करता है say [Hi, new user!] for (2) secs
- उच्च स्कोर सूची बनाना
when gf clicked
set [chars v] to [� !"#$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0123456789
set [item v] to (1)
repeat (length of(chars::variables))
add (letter (item) of (chars::variables)) to [chars v]
change [item v] by [1]
end
decode::custom
if <<not <(username) = []>>and<not<[users v] contains (username)?>>> then //जांचता है कि क्या उपयोगकर्ता स्क्रैच में लॉग इन है और लीडरबोर्ड में नहीं है
add (username) to [users v]
add [0] to [scores v] //जिसमें "०" प्रारंभिक स्कोर है
encode::custom
end
forever
decode::custom
if <[users v] contains (username)> then //जाँचता है कि क्या उपयोगकर्ता को पहले से ही लीडरबोर्ड में जोड़ा गया है
set [i v] to [1] //सूची के पहले आइटम से शुरू करें
repeat until <(item (i) of [users v]) = (username)> //हटाने की प्रक्रिया
change [i v] by (1)
end
delete (i) of [users v]
delete (i) of [scores v]
set [i v] to [1]
repeat until <<(i) > (length of [scores v])> or <(score) > (item (i) of [scores v])>> //चर "स्कोर" उपयोगकर्ता का नवीनतम स्कोर है
change [i v] by (1) //यह उचित सूची स्थान पर समाप्त होगा
end
insert (username) at (i) of [users v]
insert (score) at (i) of [scores v]
encode::custom
end
- वीआईपी प्रणाली बनाना
when gf clicked if <[VIPs v] contains (username)> then say [You are an VIP] set [Is VIP? v] to [y] else say [Sadly, you are not a VIP] set [Is VIP? v] to [n]