Interaktivlik, shartlar va o'zgaruvchilar.
Interaktivlik
Interfaollik deganda biz turli muhitlarga tegishli ob'ektlar o'rtasidagi o'zaro ta'sir o'tkazish
imkoniyatini tushunamiz. Masalan, agar biz yozgan dasturda Scratch-dan mushuk Scratch-dan
sichqonchani ushlasa va u bunga reaktsiya qilsa va qochib ketsa, bu interaktivlik deb
hisoblanmaydi. Mushuk ham, sichqon ham bir xil muhitning ob'ekti. Ammo agar Scratch-dan
olingan mushuk haqiqiy odamning harakatlariga (masalan, foydalanuvchi tomonidan biron bir
tugmachani bosish) ta'sir ko'rsatsa, bu allaqachon interaktivlik, chunki narsalar turli xil "yashash
joylariga" tegishli.
Scratch ish sohaida dasturchi mushukning xatti-harakatlarini nazorat qila olishiga ishonch hosil
qilish talab qilinadi. Agar siz bunday skriptni yozsangiz, u ishga tushirilgandan so'ng
sichqonchaning chap tugmachasini bosib tursangiz, ob'ekt ko'rsatgichni ta'qib qiladi.
Sichqoncha buyrug'i bosilganmi? buyruqlar guruhlangan sensorlar bo'limida joylashgan
bo'lib, ularning maqsadi obyekt muhitida belgilangan o'zgarishlarning mavjudligini tekshirishdir.
Misol uchun, x sichqonchasi buyrug'i x o'qi bo'ylab sichqonchani kursori qaerda joylashganligini
kuzatadi. Nazorat tuzilishi har doim, agar
har doim
buyrug‘i aylanish jarayoniga o'xshash bo'lsa,
bu dizayn tsiklni shart bilan birlashtiradi. Bunday tsikl faqat shart to'g'ri bo'lganda amalga
oshiriladi.
Ushbu stsenariyni tuzing. Ob'ekt xususiyatlariga hujayrada "faqat chapdan o'ngga burilish"
tugmachasini kiritish tavsiya etiladi. Keyin voqea joyiga yana bir ob'ekt qo'shing, birinchi
ob'ektning skriptini nusxasini oling va ikkinchisiga o'tkazing. Natijada, sichqonchayurgizgandan
keyin ikkita ob'ekt ish sohada "yurishi" kerak.
O'zgaruvchilar va shartli operator
Biz dasturni quyidagicha murakkablashtiramiz. Ob'ektlar bir-biridan uzoqlashmasin, lekin bir-
biridan uzoqroq bo'lsin: birinchisi, kursordan keyin, ikkinchisi esa ishlaydi. "Faoliyat" ni
ob'ektlar o'rtasida almashtirish bo'sh joy satridan foydalanib amalga oshishiga imkon beradi.
Bunday dasturni qanday dasturlash mumkin?
Agar biron bir dasturlashning juda muhim tarkibiy qismi ya‘ni
o'zgaruvchilar
haqida
bilmasangiz, bu savolga javob berish juda qiyin bo'ladi. O'zgaruvchilar har qanday ma'lumotlar
saqlanadigan yacheykalardir (raqam, satr va boshqalar). Bundan tashqari, dasturni bajarish
paytida yacheykalar tarkibi o'zgarishi mumkin.
Agar biron bir dasturlashning juda muhim tarkibiy qismi - o'zgaruvchilar haqida bilmasangiz, bu
savolga javob berish juda qiyin bo'ladi. O'zgaruvchilar har qanday ma'lumotlar saqlanadigan
hujayralardir (raqam, satr va boshqalar). Bundan tashqari, dasturni bajarish paytida hujayralar
tarkibi o'zgarishi mumkin. Bir nuqtada, siz u erda nima borligini tekshirishingiz mumkin va
bunga qarab, ba'zi buyruqlarni bajarasizmi yoki yo'qmi. Boradigan nom ostida o'zgaruvchi katak
90
yarating. Buni amalga oshirish uchun tugmachalarni bosing, so'ng Scratch buyruqlari uyasida
O'zgaruvchi yaratish tugmachasini bosing; ochilgan muloqot oynasida uning ismini kiriting va
OK ni bosing. Shundan so'ng biz o'zgaruvchining o'zi va uni o'zgartirish uchun bir nechta
buyruqlarga ega bo'lamiz.
Bizga ushbu o'zgaruvchi kerak, shunda uning qiymatiga qarab, birinchi ob'ekt yoki ikkinchisi
harakatlanadi. Agar yuruvchi = 0 bo'lsa, unda birinchi ob'ekt siljiydi va agar o'zgaruvchi teng
bo'lsa, ikkinchisi. O'zgaruvchining qiymatini o'zgartirish bo'shliqni bosganingizda yuz beradi.
Dasturning ushbu qismi ikkala ob'ektga ham tegishli bo'lganligi sababli, ssenariyni Sahna
ob'ektiga qo'yib qo'yish o'rinli bo'ladi (garchi bu shart emas). Mana senariy:
Bo'sh probel o'rniga siz birinchi skript buyrug'ining ochiladigan ro'yxatida boshqa kalitni
tanlashingiz mumkin. Quyidagi murakkab
agar - yoki
konstruksiya amalga oshadi. Bu
quyidagicha ishlaydi: agar qisman shart to'g'ri bo'lsa, u holda o'rnatilgan buyruqlar bajariladi,
agar bo'lmasa, yoki keyin o'rnatilgan buyruqlar bajariladi. Ikkala tarmoq ham birgalikda
bajarilmaydi, ular bir-birini istisno qiladi.
Endi
agar
bayonotidagi shartni ko'rib chiqing. Yashil buyruqlar operatorlarga murojaat
qilishadi. Operatorlar - bu ma'lumotlar bilan biror narsa qiladigan buyruqlar. Masalan, ular
matematik operatsiyalarni bajaradilar yoki raqamlarni bir-biri bilan taqqoslaydilar. Bunday
holda, tenglikni taqqoslash operatori tanlanadi. U "=" belgisining chap tomonidagi ifoda o'ngdagi
ifoda bilan tengligini tekshiradi. Agar – ha bo‘lsa, keyin kod ishlaydi, agar - yo'q bo‘lsa,
ishlamaydi. Bizning holatda, ishlaydigan o'zgaruvchining qiymati 0 bilan taqqoslanadi.Biz
o'zgaruvchiga hech narsa bermaymiz, lekin odatdagidek 0 qiymati berilgan, shuning uchun biz
bunga majbur bo'lmaymiz. Bundan tashqari, agar to'satdan o'zgaruvchi nolga teng bo'lmasa,
unda yoki tarmog‘i faollashadi. Ushbu skript qanday vazifani bajaradi? Shuni korib chiqamiz.
Agar o'zgaruvchining qiymati 0 bo'lsa, u 1 ga o'zgaradi. Aks holda, u 0 ga o'zgaradi. Bu tugmani
bosib chiqadi bo'sh joy o'zgaruvchan o'zgaruvchining qiymatini o'zgartiradi. Biroq, dasturni
amalga oshirishda hech qanday o'zgarishlarni ko'rmaymiz. Haqiqatan ham, obyektlar hali ham"
bilishmaydi", chunki o'zgaruvchining qiymati ularning harakatlariga bog'liq. Yuqoridagi skriptni
yarating va birinchi obyektga o'ting.
O'zgaruvchining qiymatini tekshirishni tashkil qilish kerak. Buning uchun oddiy ko'rsatmalar
juda yaxshi. Bu erda birinchi va ikkinchi obyektlar uchun olingan stsenariylar.
Ularning orasidagi farq faqat o'zgaruvchining qiymati taqqoslanadigan holda bo'ladi: nol yoki bir
bilan. Bilishimizcha, pni bosganingizda uning qiymati o'zgaradi. Natijada, dastur ishlayotganida,
biz "faol" ob'ektni o'zgartirishimiz mumkin. Dasturni yakunlang va u qanday ishlashini ko'ring.
91
Interfaollik bilan o'ynashni davom ettirishingiz mumkin. Muayyan tugmachalar bosilganda
ob'ektlar tashqi ko'rinishini o'zgartirishi mumkin. Misol uchun, shunday:
Siz imkoniyatlari harakat qilib ko'rishingiz mumkin. Dasturni Scratch muhitida tuzing, unda
foydalanuvchi obyektni klaviaturada o'q bilan boshqarishi mumkin va boshqa tugmachalarni
bosganda, obyekt "turli" fikrlarni "o'ylaydi.
Dostları ilə paylaş: |