Farg’ona davlat universiteti Fizika-matematika fakulteti Amaliy matematika va informatika yonalishi 19.07 guruh talabasi Odilova zeboxonning KURS ISHI Mavzu: “C# dasturida tir dasturi tuzish” kurs ishi rahbari: A.Ismoilov
KIRISH
Kurs ishining dolzarbligi: Ushbu kurs ishi hozirgi kunda kompyuterda berilgan masalalarni dasturlash tillari orqali yechish va dasturda turli xildagi operatorlarni yuklab olish va ortiqcha yuklangan operatorlar tushunchalaridan foydalanish kabi vazifalarni o’rganishga olib keladi.
Kurs ishining maqsadi: Mustaqil ravishda izlanaish, izlangan sari bu mavzuni mustaqil ravishida o’zlashtirib boraish. C# dasturlash tili va uni tarixini o’rganish. C# tilida kompanentalar bilan ishlash haqida tushunchalar olish va o’rganish.
Kurs ishining asosiy vazifalari:
Oyinlar tuzishga bolgan tushunchaga berish usullarining visuallashtirilish;
Dasturlash haqidagi umumiy ma’lumotlarga tayangan holda dastur tuzishni o’rganish;
O’yin turlaridan biri tir otishmalar harakatini algaritmlar yordamida korsatish
Kurs ishining obyekti: C# dasturlash tili bilan yaqindan ishlash va u haqida to’liq ma’lumot berish va uni amalda qo’llash.
Kurs ishining predmeti: C# dasturlash tilini keng targ’ib etish.
Kurs ishining tarkbi: Kurs ishiga kirish, 2 bob, xulosa, foydalanilgan adabiyotlar, ilova dan iborat.
C # va Java tillari turli vaqtlarda paydo bo'lgan. Java tili C # paydo bo'lishidan ancha oldin yaratilgan. Oak Java 1990 yilda Sun Microsystems tomonidan ishlab chiqilgan va Java-ning birinchi beta-versiyasi 1995 yilda chiqarilgan. C # ning yaratilishi 2000 yilda e'lon qilindi va 2002 yilda C # ni qo'llab-quvvatlaydigan .NET platformasining birinchi versiyasi chiqdi. Shunday qilib, agar Java ko'proq Objective-C va C tajribalariga tayanib yaratilgan bo'lsa, C # Java va Java-ning o'zi bunday qo'llab-quvvatlovlarga ega edi [1]. Va nomiga qaramay, C # C ++ ga qaraganda Java ga yaqinroq bo'lib chiqdi [2] [3].
Tuzuvchi nuqtai nazaridan Java va C # tillari juda o'xshash. Ikkala til ham kuchli yozilgan, ob'ekt. Ikkalasi ham C ++ sintaksisining ko'p qismini o'z ichiga oladi, ammo C ++ dan farqli o'laroq, yangi boshlanuvchilar uchun o'rganish osonroq. Ikkala ham C-dan asosiy kalit so'zlar va xizmat belgilarini, shu jumladan bloklarni ta'kidlash uchun jingalak qavslarni oldilar. Ikkala til ham axlat yig'ishga tayanadi. Ikkala til ham boy kutubxonalar to'plamlari bilan ta'minlangan. Ammo tillarning o'ziga xos xususiyatlari va farqlari, kuchli va zaif tomonlari ham bor. C # Java-ning ko'pgina kamchiliklarini inobatga oldi va ularni bajarishda ularni o'rnatdi [4]. Ammo Java C # bilan parallel ravishda rivojlanib, to'xtamaydi.
Java C # Sintaksis
Statik nomlarni import qiling
(import statik) ba'zi bir yoki barcha statik usullarni va sinf o'zgaruvchilarni alohida-alohida import qilishga va ularning nomlarini import modulida malakasiz ishlatishga imkon beradi. C # 6.0 bu joriy qilingan (masalan (statik System.Math-dan foydalanish)).
Switch bayonoti
Kommutatsiya bayonotining argumenti butun son yoki raqamlangan tur bo'lishi kerak. Java 7-dan boshlab, kommutatsiya bayonnomasida simli harflarni ishlatish mumkin edi va C # bilan bu farq hal qilindi [2].
Ikkala til ham dinamik ma'lumotlar bilan ishlashning bir xil modelini amalga oshiradilar: ob'ektlar yangi konstruktsiyadan foydalangan holda dinamik ravishda yaratiladi, ish vaqti ularga ulanishlar mavjudligini kuzatadi va axlat yig'uvchi mos yozuvlar bo'lmagan ob'ektlarning xotirasini vaqti-vaqti bilan tozalaydi. Axlat yig'ishni optimallashtirish uchun tillarning o'ziga xos xususiyatlari va ishlaydigan muhitda ob'ektga oxirgi havolani o'chirib tashlaganidan keyin uning ishlash muddati bo'yicha cheklovlar mavjud emas - kollektor dasturning bajarilishidan qat'i nazar ishlaydi, shuning uchun ob'ektni haqiqiy yo'q qilish dastur tugamasdan oldin oxirgi havolani o'chirgandan so'ng istalgan vaqtda yuz berishi mumkin. Aslida, axlat yig'uvchilar dasturning sekinlashuvini minimallashtirish bilan birga, xotiradan maqbul foydalanish uchun ishlashni optimallashtiradi.
Doimiy va satr turlari ham qo'llab-quvvatlanadi. C # 7 mos yozuvlar turlari va null uchun qo'llab-quvvatlashni taqdim etdi. Qachon [5] kalit so'zidan foydalanib, ish bloki uchun qo'shimcha shartlarni belgilash mumkin. Java-dan farqli o'laroq, keyingi ish blokiga to'g'ridan-to'g'ri o'tish yo'q. Keyingi holatlar blokiga o'tish uchun siz goto [2] operatoridan foydalanishingiz kerak.
Goto o'tish to'g'risidagi bayonot
goto-dan foydalanish qasddan voz kechdi, ammo yorliq bilan markalash va tanaffusdan foydalanib, ichki pastadirdan ichkaridan chiqishga imkon beradigan mexanizm mavjud, yorliq bilan bir qatorda davom eting (davomi
Birinchi Shaxs Shooter elementlariga e'tibor qaratamiz:
• WSAD-Harakat va sakrash
• Sichqon bilan atrofga qarash
• Yaxshi ko'rinadigan qurol
• Ta'sirda portlaydigan o'qlar
• Yaxshi qarash darajasi
• Otish uchun biror narsa
Endi "harakat" va "sichqon bilan atrofga qarash" juda ko'p aqldan matematikga o'xshaydi. Ammo odatdagidek biz uchun Unity g'amxo'rlik qiladi. Biz o'yin uchun atigi 50 ta satr kodi bilan yakunlaymiz (bu ... aqldan). Biz o'yinimizni yodda tutgan Quake kabi narsalar bilan yaratamiz. Bizning Art Style-ni yaratish oson va shu bilan birga chiroyli ko'rinishga ega effektlarni berish kerak. Ushbu darslikning yuqori qismidagi oldindan ko'rish rasmida ko'rishimiz mumkin bo'lgan futuristik effektni olish uchun biz juda ko'p shaffoflikdan foydalanamiz.
Loyihani va sahnani sozlash
Biz C: / union_fps kabi katalogda File-> New Project .. orqali yangi Birlik loyihasini yaratamiz. Biz shuningdek, Belgilar nazorati va zarracha paketlarini quyida ko'rsatilgan tarzda import qilamiz:
Biz o'yinimizni yodda tutgan Quake kabi narsalar bilan yaratamiz. Bizning Art Style-ni yaratish oson va shu bilan birga chiroyli ko'rinishga ega effektlarni berish kerak. Ushbu darslikning yuqori qismidagi oldindan ko'rish rasmida ko'rishimiz mumkin bo'lgan futuristik effektni olish uchun biz juda ko'p shaffoflikdan foydalanamiz.
Loyihani va sahnani sozlashEslatma: Belgilarni boshqarish vositasi sichqonchani harakatlantirish va ko'rish uchun, Particles paketi esa portlash uchun ishlatiladi.
Keyinchalik biz uni bir marta File-> Save Scene orqali "sahn_main" nomi bilan saqlaymiz ("" holda ").
Izoh: saqlangan sahna shunchaki Ierarxiyadagi barcha narsalarni o'z ichiga oladi.