Mündəricat:

Matrix Kodu - Visual Basic: 7 addım
Matrix Kodu - Visual Basic: 7 addım

Video: Matrix Kodu - Visual Basic: 7 addım

Video: Matrix Kodu - Visual Basic: 7 addım
Video: Matrix Hacker :D Kod Aşada 2024, Noyabr
Anonim
Matrix Kodu - Visual Basic
Matrix Kodu - Visual Basic

Yeni və təkmilləşdirilmiş Visual Basic kodu, "Matrix" bənzər bir effekt göstərəcək və One və Zero-u sürüşdürəcək. Daha sonra Matrix "Wake Up Neo" ardıcıllığını kəsir və sonra nömrələri sürüşdürməyə davam edir. Anlayıram ki, bu filmin içərisində tam olaraq necə getmir, amma bu funksiyanı istəyən insanlar var idi, ona görə də əlavə etdim. Düşünürəm ki, One və Zero sütunlarının görüntüsünü təsadüfi şəkildə seçməyim kodun ən səliqəli hissəsidir. Daha sonra etdiklərimi tam olaraq müzakirə edirəm. Bu Təlimatlandırıcı Brennn10 -un "Əmr əmrində matrisə xoş gəldiniz" təlimatına cavabdır. Bu Təlimatı təşkil edən kod, əvvəlcə yuxarıdakı Instructable -da DarkJoker -in şərhində yazılan koda əsaslanır. Mən ilk vaxtdan bəri aydınlaşdırmaq üçün bir neçə sorğu aldığım üçün qəsdən kodun izahını açıq şəkildə söyləmişəm. bu həlli yerləşdirdi.

Addım 1: Kodumu götürün

Kodumu aşağıda əlavə etdim. Hər iki faylı (startMatrix.itsabat və matrix.itsavbs) maşınınızda eyni qovluqda saxlayın və fayl adının "itsa" hissəsini çıxarın, yəni faylları startMatrix.bat və matrix.vbs adlandırın. Bat faylları və vbs faylları icra edilə bilər və buna görə də onları bu uzantılarla buraya yükləyə bilmərəm. Bu səbəbdən onları yerli olaraq saxlamalı və yenidən adlandırmalısınız.

Addım 2: Kodun icrası

Kodumu işə salmaq istəyirsinizsə, aşağıdakı təlimatları izləyin. Maşınınızda heç nə bilmədiyiniz bir şeyi icra etmək istəmirsinizsə, ağıllısınız. Növbəti addıma keçməlisiniz, kodu keçdiyim zaman sizə heç bir şey etmədiyimi göstərəcəyəm, ancaq buna çatmaq istəyirsinizsə (və ya başqasının maşınında olsanız qayğı), kodu necə açmaq olar: Adım 1: "startMatrix.bat" üzərinə iki dəfə vurun. İndi gördüyünüz sərinliyi oxumaq üçün növbəti addıma keçin.

Addım 3: Məcəlləni anlamaq, 1 -ci hissə

Əvvəldən başlayaraq kodu nəzərdən keçirək. Ümid edirəm ki, kodumdan VB haqqında kifayət qədər məlumat əldə edə bilərsiniz və VB -də kod yazmağı məndən daha yaxşı öyrənə bilərsiniz:) Belə ki, ilk növbədə 2 faylımız var: yarasa faylı və vbs faylı. Yarasa faylını redaktə etsəniz, pəncərəni, mətn rəngini və pəncərə başlığını qurduqdan sonra vbs faylını icra etdiyini görəcəksiniz. Vbs faylındakı daha maraqlı şeylərə keçək. FYI, mən burada yalnız ən maraqlı kod sətirlərinə toxunacağam. Ayrıca 'ilə başlayan sətirlərə xüsusi diqqət yetirin (qeyd və ya tək sitat).. Bunlar şərhlərdir və İCRA EDİLMƏYƏCƏK. Matrix.vbs -in ilk bir neçə sətrində "Səhv mesajlarımı açıq səviyyəyə qoy" deyilir, eyni zamanda "Etdiyim səhvlərin ölümcül olmasına imkan verməyin." Həqiqi müzakirəyə ehtiyac yoxdur. 5 -ci sətir: Buradakı qaranlıq ifadəmiz, kiçik proqramımızın ömrü boyu istifadə edəcəyimiz bütün dəyişənləri qurur. Başqa dillərdə olduğu kimi, bu dəyişənlər üçün növləri və ya onlar üçün ilkin dəyərləri elan etməyimizə ehtiyac yoxdur. VB bunun kimi "güclüdür". Xətt 12: objSysInfo, işlədiyimiz sistem haqqında bəzi məlumatlar toplamağa imkan verir. Burada obyekti yaradırıq və 13 -cü sətirdə objSysInfo. UserName bu kodu icra edən hazırda daxil olan istifadəçinin adını qaytarır. Bu daha sonra "Neo" yerinə istifadə ediləcək, belə ki, Skriptimiz maşınımda işlədilsə "Oyan, Martin …" və ya Brennn10 -un maşınında işlədilsə "Uyan, Brennn10 …" deyə bilər. bu istifadəçi adı idi. Sistemin istifadəçi adından istifadə etməklə onu dostunuzun kilidi açılmış maşının üstünə ata bilərsiniz və kodu dəyişdirmədən avtomatik olaraq onun adını çəkəcək. Hərəkətə davam edək.

Addım 4: Kodu Anlamaq, 2 -ci hissə

Satır 16: sub waitfor ilk alt proqramımızdır. Bir alt proqram kodun fərqli bir yerindən çağırıla bilər, kodu alt proqramın gövdəsində icra edəcək və sonra proqram nəzarətini zəng koduna qaytaracaq. waitfor qabığımızı bizim üçün qurur. Bunu döngə daxilində "yuxu" olan bir döngədə etməklə, nəzarətin qaytarılmasından əvvəl qabığın aktivləşdirilməsini təmin edirik, bu çox yaxşı bir şeydir. 26 -cı sətir: alt matris ikinci alt proqramımızdır və "elementlər" adlanan parametr. Bu alt proqram, filmdəki kimi "düşən" kimi görünən sərin nömrələrin çapını edir. Burada bir neçə şeyi özümə götürmüşəm. Ümid edirəm bunları izah edərək haradan gəldiyimi anlayacaqsınız və bunu məndən daha yaxşı bacaracaqsınız. Əvvəlcə, yalnız 5 ədəd sütun istədiyinizi və "elementlərin" sütun sayına bölündüyünü düşünürəm (5). Zəmanət vermək asan idi, çünki sonradan "matrisə" verilən parametrlərin 200 və 100 olduğunu bildirirəm (buna iki dəfə deyilir). Mən də bütün 5 sütunun standart olaraq açılmasını istədiyimi düşünürəm. Düşünürəm ki, bu yaxşı görünür, amma rəqəmlərin ilk sətrinin digər sətirlərin təsadüfi görünməsini istəsəniz bunlardan bir neçəsini YALNIZ olaraq dəyişə bilərsiniz. OK, buna görə 5 sütunumuz var, 200 / 5 = 40 sətir göstəriləcək ədədlər (xətlərToWrite) və bütün sütunlarımız standart olaraq açılır. 41 -ci sətir: iki "for" döngəsinə daxil oluruq ki, birincisi (Loop A) xətlərimizdən keçər və ikincisi (Loop B) sütunların sayını dəyişir. Loop B-də loopB loop loopunun dəyərini seçirik və onun dəyərindən asılı olaraq bir If-Else ifadəsini qiymətləndiririk. Sözügedən sütun Aktivdirsə ("DOĞRU" və ya "Açıq"), "wshshell. SendKeys" vasitəsi ilə Int (Round (rnd ())) dəyərini, sonra bir nişanı izləyərək çap edəcəyik. Əks təqdirdə, sütunun boş görünməsi üçün yalnız bir nişanı çap edəcəyik. Beləliklə Int (Round (rnd ())) dəyəri nədir? rnd () 0.0 ilə 1.0 arasında təsadüfi bir üzən nöqtə sayı qaytarır, Round () bu dəyəri götürüb ən yaxın Tamsayı dəyərinə yuvarlaqlaşdıracaq və Int () nəticəni Tamsayıya verir. Round () çağırışı bizə 0 və ya 1 verməlidir, çünki bu son addımı həddindən artıq hesab etmək olar. Bir anda kimsə mənə bunun daha təhlükəsiz olduğunu söyləmişdi və yəqin ki, hələ unutmamışam. 3 -cü hissəyə…

Addım 5: Məcəlləni anlamaq, 3 -cü hissə

Alt Matrisə davam edərək, VB-nin növbəti bir neçə sətirini təqdim edirik … 'Bu flip-flop sütunlar', buna görə də bir sütun OFF olarsa, vaxtın 30 % -i AÇILACAQ 'və bir sütun ON olarsa, olacaq vaxtın 30 % -ni söndürdü. turnOffMax = 0.30 turnOnMax = 0.30Hər bir sütunu vaxtın 30% -də gəzdirmək, rəqəm sütunlarının filmdəki kimi təsadüfi bir şəkildə "düşməsinə" səbəb olur. Dəqiq deyil, amma yaxındır. 'Sütun 1 flip-flop flipMe = rnd () If ((col1 = çevrildiOn) və (flipMe <turnOffMax)) Sonra col1 = Başqa Bir halda Çevrilmişsə ((col1 = çevrilmişOff) və (flipMe <turnOnMax)) Sonra col1 = dönmüşdür Yuxarıdakı blok, növbəti sıra sayı üçün, növbəti iterasiya zamanı verilən sütunda bir ədəd göstərib göstərməyəcəyimizi necə təyin edəcəyimizi idarə edir. Kod "sütun açıqdırsa və flipMe adlanan təsadüfi ədəd 30%-dən azdırsa, sütunu söndürün. Əks halda sütun sönüb və flipMe 30%-dən azdırsa, sütunu açın" yazılır. alt Matrix. Alt düyməyə keçin…

Addım 6: Alt Açar ()

Açar metod aşağıda verilmişdir. Alt düymə (msg) "matris" mesajlarının çapını və themwscript.sleep silmək üçün 1500length = len (msg) üçün mövqe = 1 wshshell. SendKeys orta (msg, mövqe, 1) wscript.sleep 250nextwscript.sleep 3000for = 1 to wshshell. SendKeys to wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subBu metod bir sətir yazdırır "msg". Ötürdüyünüz hər şeyi çap edəcək. Bu üsul sonradan kodda çağırılır. İlk FOR döngəsi hər bir simli bir -bir çap edir və hər bir simvol arasında 250 milisaniyəyə fasilə verir. Daha sonra 3000 milis (3 saniyə) yatırıq və əvvəllər çap etdiyimiz hər bir xarakter üçün arxa plan yazırıq, bu dəfə biraz daha az yatırıq. Hər şeyin bir araya gəldiyi proqramın əsas hissəsinə keçək.

Addım 7: Əsas

Proqramın əsas icrası, hər şeyi qurmaq və 5 sütuna yayılmış 200 ikili rəqəm yazmaq üçün waitFor və matrix (artıq əhatə etdiyimiz) çağırır. Mövcud sistem istifadəçisinin adı "oyan" ardıcıllığının bir hissəsi olaraq çap olunmaq üçün ələ keçirilir və manipulyasiya edilir. Daha sonra "1" səbəbindən yalnız 4 dəfə təkrar edəcəyimizi bildiyimiz bir FOR döngəsinə daxil oluruq. 4 "məhdudiyyətə qədər. Daha sonra, ilk CASE ifadəsi ilə ilk dəfə, ikinci CASE ifadəsi ilə ikinci dəfə döngə ilə uyğun gələn loop dəyişənimizi (loopA) SEÇirik. Döngənin hər bir təkrarlanması, myString, çap etmək istədiyimiz söz və əsas alt proqram əslində çap etmək üçün çağırılır. Bu döngəni tərtib etməyin başqa bir çox yolu var və bunu oxucuya bir məşq olaraq buraxacağam. FOR döngəsindən çıxdıqdan sonra daha çox ədəd çap etmək üçün matris alt proqramına yenidən zəng edirik. Koddakı şərhdə deyildiyi kimi, istəsəniz bu son matrisi () bir döngəyə qoya bilərsiniz və ya daha böyük bir nömrə ilə zəng edə bilərsiniz. Nəhayət () proqramından çıxmaq çağırışımız icra (həmişə yaxşı təcrübə: P). Ümid edirəm ki, hamı mənim nümunəmdən istifadə edərək daha yaxşı hala gətirir! Bu Təlimat VB ilə marağınızı artırdısa, Google bu barədə sizə deyə biləcəyimdən daha çox məlumat əldə etmək üçün bir çox yaxşı qaynaq təmin edə bilər. Xoşbəxt kodlaşdırma! martin

Tövsiyə: