Programming TypeScript


mavhum sinf Parcha { // ... moveTo ( lavozim : Position ) { bu . pozitsiya = pozitsiya


Download 1.81 Mb.
bet71/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   67   68   69   70   71   72   73   74   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

mavhum sinf Parcha {
// ... moveTo ( lavozim : Position ) { bu . pozitsiya = pozitsiya
}
mavhum canMoveTo ( pozitsiya : Lavozim ) : mantiqiy }
Bizning parcha sinfimiz:

  • berilgan imzo bilan mos keluvchi canMoveTo deb nomlangan usulni amalga oshirishlari kerakligini aytadi . Agar sinf Piece-ni kengaytirsa , lekin mavhum canMoveTo usulini qo'llashni unutib qo'ysa, bu kompilyatsiya vaqtida xatolikdir: mavhum sinfni qo'llaganingizda, uning mavhum usullarini ham amalga oshirishingiz kerak.

  • MoveTo uchun standart dastur bilan birga keladi (uning pastki sinflari xohlasa, bekor qilishi mumkin). Biz moveTo ga kirish modifikatorini oʻrnatmadik , shuning uchun u sukut boʻyicha hammaga ochiq , yaʼni u boshqa har qanday koddan oʻqilishi va yozilishi mumkin.

canMoveTo ni amalga oshirish uchun Kingni yangilaymiz . Qulaylik uchun biz masofadan turib funksiyasini ham amalga oshiramiz, shuning uchun ikki qism orasidagi masofani osongina hisoblashimiz mumkin:
// ...
sinf Lavozim {
// ... masofaFrom ( lavozim : Pozitsiya ) {
qaytish {
daraja : Math.abs ( pozitsiya . daraja - bu . daraja ),
fayl : Math.abs ( pozitsiya . fayl . charCodeAt ( 0 ) - bu . fayl . charCodeAt ( 0 ))
}
}
}
sinf Qirol uzaytiradi Piece { canMoveTo ( pozitsiya : Position ) {
ruxsat bering masofa = bu . pozitsiyasi . masofaFrom ( pozitsiya ) qaytish masofa . daraja < 2 && masofa . fayl < 2
}
}
Yangi o'yin yaratganimizda, biz avtomatik ravishda taxta va ba'zi qismlarni yaratamiz:
// ...
sinf O'yin { shaxsiy dona = O'yin . makePieces ()
xususiy statik makePieces() { qaytish [
// Shohlar
yangi King ( 'Oq' , 'E' , 1 ), yangi King ( 'Qora' , 'E' , 8 ),
// Qirolichalar yangi Qirolicha ( 'Oq' , 'D' , 1 ),

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   67   68   69   70   71   72   73   74   ...   206




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling