Mundarija:

Matris kodi - Visual Basic: 7 qadam
Matris kodi - Visual Basic: 7 qadam

Video: Matris kodi - Visual Basic: 7 qadam

Video: Matris kodi - Visual Basic: 7 qadam
Video: Урок #39 Visual Basic - Генератор QR кода VB.NET ►◄ 2024, Noyabr
Anonim
Matris kodi - Visual Basic
Matris kodi - Visual Basic

Yangi va takomillashtirilgan Visual Basic kodi "Matrisa" effektini ko'rsatadi, "One" va "Zero" ni aylantirish. Keyin Matrix "Wake Up Neo" ketma -ketligini qisqartiradi va keyin raqamlarni aylantirishni davom ettiradi. Men shuni tushunamanki, bu filmda ketma -ketlik qanday ketayotgani aniq emas, lekin odamlar bu funktsiyani so'rashgan, shuning uchun men uni qo'shib qo'ydim. O'ylaymanki, "One" va "Zero" ustunlarining ko'rsatilishini tasodifiy usul - bu kodning eng zo'r qismi. Men nima qilganimni keyinroq muhokama qilaman. Bu ko'rsatma Brenn10 ning "Buyruq satridagi matritsaga xush kelibsiz" ko'rsatmasiga javoban. Bu ko'rsatmalarni tashkil etuvchi kod dastlab DarkJoker tomonidan yuqoridagi ko'rsatmaga yozilgan kodga asoslangan edi, men kodni tushuntirishni qasddan ochiq aytganman, chunki men birinchi marta tushuntirish so'rovlarini oldim. bu yechimni joylashtirdi.

1 -qadam: Mening kodimni oling

Men o'z kodimni quyida biriktirdim. Ikkala faylni (startMatrix.itsabat va matrix.itsavbs) bir xil papkada saqlang va fayl nomining "itsa" qismini olib tashlang, ya'ni fayllarni startMatrix.bat va matrix.vbs deb o'zgartiring. Bat fayllari va vbs fayllari bajarilishi mumkin, shuning uchun men ularni bu kengaytmalar bilan yuklay olmayman. Shuning uchun ularni saqlashingiz va mahalliy nomini o'zgartirishingiz kerak.

2 -qadam: kodni bajarish

Agar siz mening kodimni ishlatmoqchi bo'lsangiz, quyidagi ko'rsatmalarga amal qiling. Agar siz mashinangizda siz bilmagan biror narsani bajarishni xohlamasangiz, siz aqlli bo'lasiz. Siz keyingi bosqichga o'tishingiz kerak, u erda men kodni ko'rib chiqaman va sizga hech qanday ayyorlik qilmaganimni ko'rsataman, lekin agar siz unga kirishni xohlasangiz (yoki siz boshqa birovning mashinasida bo'lsangiz va parvarish qilish), bu erda kodni qanday ochish kerak: 1-qadam: "startMatrix.bat" ni ikki marta bosing. Endi siz ko'rgan salqinlik haqida o'qish uchun keyingi bosqichga o'ting.

3 -qadam: Kodeksni tushunish, 1 -qism

Keling, kodni boshidan boshlab ko'rib chiqaylik. Umid qilamanki, siz mening kodimdan VB haqida etarlicha ma'lumotga ega bo'lasiz va siz VBda qanday kodlashni mendan yaxshiroq o'rganasiz.:) Shunday qilib, birinchi navbatda bizda 2 ta fayl bor: bat fayli va vbs fayli. Agar siz bat faylini tahrir qilsangiz, oynani, matn rangini va oyna sarlavhasini o'rnatgandan so'ng, u vbs faylini bajarishini ko'rasiz. Keling, vbs faylidagi qiziqarli narsalarga o'tamiz. Ma'lumot uchun, men bu erda faqat eng qiziqarli kod satrlariga to'xtalib o'taman. Bundan tashqari, '(belgi yoki bitta tirnoq) bilan boshlangan qatorlarga alohida e'tibor bering.. Matrix.vbs -ning birinchi qatorlari "Mening xato xabarlarimni aniq darajaga qo'ying" deb yozadi, lekin "qilgan xatolarim halokatli bo'lishiga yo'l qo'ymang". Haqiqiy munozaraga hojat yo'q. 5 -qator: Bu erda bizning xira bayonotimiz kichik dasturimiz davomida ishlatadigan barcha o'zgaruvchilarni o'rnatadi. Bu o'zgaruvchilarning turlarini yoki ular uchun boshlang'ich qiymatlarni, boshqa ba'zi tillarda bo'lgani kabi, e'lon qilishning hojati yo'q. VB bu kabi "kuchli". 12 -chiziq: objSysInfo biz ishlayotgan tizim haqida ba'zi ma'lumotlarni to'plashimizga imkon beradi. Biz bu erda ob'ektni yaratamiz va 13 -satrda objSysInfo. UserName bu kodni bajaruvchi hozirda kirgan foydalanuvchining nomini qaytaradi. Bu keyinchalik "Neo" o'rniga ishlatiladi, shuning uchun bizning skriptimizda "Uyg'oning, Martin …" deb aytish mumkin, agar u mening mashinamda ishlayotgan bo'lsa yoki "Uyg'oning, Brennn10 …", agar u Brennn10 mashinasida ishlayotgan bo'lsa va Bu uning foydalanuvchi nomi edi. Tizimning foydalanuvchi nomidan foydalanish uni do'stingizning qulflanmagan mashinasiga tashlashga imkon beradi va u kodni o'zgartirmasdan avtomatik ravishda uning nomini tortib oladi.

4 -qadam: Kodni tushunish, 2 -qism

16 -qator: sub waitfor - bu bizning birinchi dasturimiz. Ichki dastur kodning boshqa joyidan chaqirilishi mumkin, u kodni ichki dastur ichida bajaradi va keyin dastur boshqaruvini chaqiruv kodiga qaytaradi. waitfor biz uchun qobig'imizni o'rnatadi. "Loop" ichida "uyqu" bo'lgan tsiklni bajarib, biz nazoratni qaytarishdan oldin qobiqni faollashtirishga ruxsat beramiz, bu juda yaxshi narsa. 26 -qator: pastki matritsa - bizning ikkinchi kichik dasturimiz va "elementlar" deb nomlangan parametr. Bu kichik dastur, xuddi filmda bo'lgani kabi, "tushib" ketadigan ajoyib raqamlarni bosib chiqaradi. Men bu erda bir nechta narsalarni o'zimga olganman. Umid qilamanki, ularga tushuntirish orqali siz mening qaerdan kelganimni tushunasiz va buni mendan ko'ra yaxshiroq qila olasiz, birinchi navbatda, menimcha, siz faqat 5 ta ustun ustunini xohlaysiz va "elementlar" ustunlar soniga bo'linadi (5). Buni kafolatlash oson edi, chunki keyinchalik "matritsa" ga o'tgan parametrlarni 200 va 100 deb e'lon qilaman (bu ikki marta chaqiriladi). Men ham 5 ustunni sukut bo'yicha yoqilishini xohlayman deb o'ylayman. O'ylaymanki, bu yaxshi ko'rinadi, lekin agar siz raqamlarning birinchi qatori boshqa qatorlar kabi tasodifiy ko'rinishini xohlasangiz, ulardan bir nechtasini FALSEga o'zgartirishingiz mumkin. OK, shuning uchun bizda 5 ta ustun, bizda 200 / 5 = 40 satrli raqamlar ko'rsatilishi kerak (lineToWrite) va barcha ustunlarimiz sukut bo'yicha yoqilgan. 41 -satr: biz ikkita "for" ko'chadan kiritamiz, ularning birinchisi (Loop A) bizning liniyalarimiz orqali o'tadiToWrite va ikkinchisi. (Loop B) ustunlar sonini aylanib o'tadi. Loop B da biz loopB o'zgaruvchi qiymatini tanlaymiz va uning qiymatiga qarab If-Else ifodasini baholaymiz. Agar so'ralayotgan ustun yoqilgan bo'lsa ("TRUE" yoki "yoqilgan"), biz "wshshell. SendKeys" orqali Int (Round (rnd ())) qiymatini, so'ngra yorliqni bosib chiqaramiz. Aks holda, biz faqat yorliqni bosib chiqaramiz, shunda ustun bo'sh bo'lib qoladi, shuning uchun Int (Round (rnd ())) qiymati nima? rnd () 0.0 dan 1.0 gacha bo'lgan tasodifiy suzuvchi nuqta sonini qaytaradi, Round () bu qiymatni oladi va uni eng yaqin Integer qiymatiga aylantiradi va Int () natijani butun songa chiqaradi. Bu oxirgi qadamni o'ta og'ir deb hisoblash mumkin, chunki Round () chaqiruvi bizga 0 yoki 1 berishi kerak. Men buni odat tufayli qildim. Bir payt kimdir menga bu xavfsizroq ekanligini aytgan bo'lishi kerak va men buni hali ham unutmaganman. 3 -qismga …

5 -qadam: Kodeksni tushunish, 3 -qism

Matrix matritsasini davom ettiramiz, bu erda VB-ning navbatdagi bir necha satrlari bor … "Bu flip-flopli ustunlar", shuning uchun agar ustun O'CHIRILGAN bo'lsa, u vaqtning 30 foizida yoqiladi va agar ustun ON bo'lsa, u shunday bo'ladi. 30 % hollarda O'chirilgan. turnOffMax = 0.30 turnOnMax = 0.30Har bir ustunga vaqtni 30% aylantirish, raqamli ustunlar tasodifiy tarzda "tushadi". Aniq emas, lekin yaqin. '1-ustun flip-flop flipMe = rnd () If ((col1 = turnOn) va Yuqoridagi blok keyingi raqamlar qatori uchun keyingi iteratsiya paytida berilgan ustunda raqamni ko'rsatishni xohlayotganimizni qanday aniqlaydi. Kod "agar ustun yoqilgan bo'lsa va flipMe deb nomlangan tasodifiy raqam 30%dan kam bo'lsa, ustunni o'chiring. Aks holda, agar ustun o'chirilgan va flipMe 30%dan kam bo'lsa, ustunni yoqing." pastki matritsa. Pastki kalit yoqilmoqda…

6 -qadam: pastki kalit ()

Kalit usuli quyida.sub tugmasi (msg) "matritsa" xabarlarini chop etish va ularni o'chirish wwscript.sleep 1500length = len (msg) pozitsiya = 1 wshshell. SendKeys o'rta (msg, pozitsiya, 1) wscript.sleep 250nextwscript.sleep 3000for pozitsiya = 1 ga wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subBu usul satrni chiqaradi "msg". Siz uzatgan hamma narsani chop etadi. Bu usul keyinchalik kodda chaqiriladi. Birinchi FOR tsikli satrdagi har bir belgini birma -bir bosib chiqaradi va har bir belgi o'rtasida 250 millisekundga pauza qiladi. Keyin biz 3000 millis (3 soniya) uxlaymiz va avval bosgan har bir belgi uchun orqaga bo'sh joy yozamiz va bu safar biroz uxlaymiz. Hammasi shu. Dasturning asosiy qismiga o'ting, u erda hamma narsa birlashadi.

7 -qadam: asosiy

Dasturning asosiy bajarilishi 5 ta ustunga yoyilgan 200 ta ikkilik raqamni yozish uchun waitFor va matritsani chaqiradi. "Uyg'onish" ketma -ketligining bir qismi sifatida chop etish uchun joriy tizim foydalanuvchisining ismi ushlanadi va o'zgartiriladi, keyin biz "FOR" tsikliga kiramiz, biz bilamizki, "1" tufayli biz faqat 4 marta takrorlaymiz. 4 "cheklovgacha. Biz birinchi navbatda CASE bayonotiga, ikkinchi CASE bayonotiga ikkinchi marta pastadir orqali mos keladigan loop o'zgaruvchisini (loopA) SELECT, loopning har bir iteratsiyasi, myString to'g'ri chiziqli tasvirga o'rnatiladi. biz chop qilmoqchi bo'lgan fe'l -atvor va kalit subroutine aslida chop etishga chaqiriladi. Ko'rinib turibdiki, bu halqani loyihalashning ko'plab boshqa usullari bor va men buni o'quvchiga mashq qilib qoldiraman. FOR tsiklidan chiqqandan so'ng, biz yana matritsaning pastki dasturini chaqirib, boshqa raqamlarni chop etamiz. Koddagi izohda aytilganidek, agar xohlasangiz, matrix () ga bu oxirgi qo'ng'iroqni pastadir qilib qo'yishingiz mumkin, yoki siz uni katta raqam bilan qo'ng'iroq qilishingiz mumkin va hokazo. Nihoyat, bizning dasturni () to'xtatishga chaqiruvimiz. ijro (har doim yaxshi amaliyot: P). Umid qilamanki, hamma mening misolimni olib, uni yaxshilashni yaxshi ko'radi! Agar bu ko'rsatma VBga bo'lgan qiziqishingizni uyg'otgan bo'lsa, Google bu haqda sizga aytganimdan ko'ra ko'proq ma'lumot olish uchun juda yaxshi manbalarni taqdim etishi mumkin. Baxtli kodlash! martin

Tavsiya: