Sadržaj:

Matrični kod - Visual Basic: 7 koraka
Matrični kod - Visual Basic: 7 koraka

Video: Matrični kod - Visual Basic: 7 koraka

Video: Matrični kod - Visual Basic: 7 koraka
Video: Топ языков которые нужно учить в 2022 году #программист #компьютер #код 2024, Studeni
Anonim
Matrični kod - Visual Basic
Matrični kod - Visual Basic

Novi i poboljšani kod Visual Basica prikazat će učinak sličan "matrici", s pomicanjem brojeva One i Zero. Zatim se prelazi na matrični "Wake Up Neo" niz, a zatim nastavlja pomicati brojeve. Shvaćam da to nije baš način na koji slijed ide unutar filma, ali bilo je ljudi koji su tražili ovu funkciju pa sam ga dodao. Mislim da je način na koji nasumično odabirem prikaz stupaca One i Zero najljepši dio koda. Raspravljat ću o tome što sam učinio kasnije. Ovaj Instructable je odgovor na Brennn10 -ovu "Welcome to the Matrix in Command Prompt" Instructable. Kôd koji čini ovu Instructable temeljen je na početku na kodu objavljenom u komentaru DarkJokera na gornju Instructable. Namjerno sam bio prilično eksplicitan s objašnjenjem koda jer sam od svog prvog dolaska dobio dosta zahtjeva za pojašnjenje objavio ovo rješenje.

Korak 1: Uzmite moj kôd

U nastavku prilažem svoj kôd. Spremite obje datoteke (startMatrix.itsabat i matrix.itsavbs) unutar iste mape na vašem računalu i uklonite dio "itsa" naziva datoteke, tj. Preimenujte datoteke u startMatrix.bat i matrix.vbs. Bat datoteke i vbs datoteke su izvršne, pa ih ovdje ne mogu prenijeti s tim proširenjima. Zato ih morate spremiti i preimenovati lokalno.

Korak 2: Izvođenje koda

Ako želite pokrenuti moj kôd, slijedite upute u nastavku. Ako ne želite izvršiti na svom stroju nešto o čemu ne znate ništa, pametni ste. Trebali biste prijeći na sljedeći korak, gdje ću proći kroz kôd i pokazati vam da nisam učinio ništa opasno. Međutim, ako samo želite doći do njega (ili ste na tuđem stroju, a ne briga), evo kako započeti kôd: 1. korak: dvaput kliknite na "startMatrix.bat". To je to. Sada prijeđite na sljedeći korak kako biste pročitali o hladnoći koju ste upravo vidjeli.

Korak 3: Razumijevanje Kodeksa, 1. dio

Pogledajmo kod, počevši od početka. Nadam se da ćete iz mog koda naučiti dovoljno o VB -u da ćete otići i naučiti kodirati u VB -u bolje od mene:) Prvo, prvo, imamo 2 datoteke: bat datoteku i vbs datoteku. Ako uredite bat datoteku, primijetit ćete da ona izvršava vbs datoteku, nakon postavljanja prozora, boje teksta i naslova prozora. Prijeđimo na zanimljivije stvari u vbs datoteci. FYI, ovdje ću se dotaknuti samo najzanimljivijih redaka koda. Također, obratite posebnu pažnju na retke koji počinju s '(označite ili jednim navodnikom). Ovo su komentari i NEĆE SE IZVRŠITI. Prvih nekoliko redaka matrix.vbs kaže "Postavi moje poruke o pogrešci na eksplicitnu razinu", ali u isto vrijeme "Ne dopusti da greške koje sam napravio budu kobne". Nije potrebna nikakva prava rasprava. 5. redak: Naša prigušena izjava ovdje postavlja sve varijable koje ćemo koristiti tijekom čitavog života našeg malog programa. Ne moramo deklarirati vrste za ove varijable, niti početne vrijednosti za njih, kao što bismo mogli u nekim drugim jezicima. VB je ovako "moćan". Red 12: objSysInfo nam omogućuje da prikupimo neke podatke o sustavu na kojem radimo. Ovdje stvaramo objekt, a na retku 13 objSysInfo. UserName vraća ime trenutno prijavljenog korisnika koji izvršava ovaj kôd. Ovo će se kasnije koristiti umjesto "Neo", tako da naša skripta može reći "Probudi se, Martine …" ako se pokreće na mom stroju, ili "Probudi se, Brennn10 …" ako se pokreće na stroju Brennn10 i ako to je bilo njegovo korisničko ime. Korištenje korisničkog imena Sustava omogućuje vam da ga bacite na otključani stroj vašeg prijatelja i ono će automatski povući njegovo ime, bez potrebe za mijenjanjem koda. Idemo dalje.

Korak 4: Razumijevanje Kodeksa, 2. dio

Redak 16: sub waitfor je naša prva potprogram. Podprogram se može pozvati s drugog mjesta u kodu, izvršit će kôd unutar tijela potprograma, a zatim će vratiti programsku kontrolu u pozivni kod. waitfor nam postavlja ljusku. Radeći to u petlji sa "spavanjem" unutar petlje, dopuštamo da se aktivacija ljuske dovrši prije nego što se kontrola vrati, što je vrlo dobro. Red 26: sub matrica je naša druga potprogram i uzima parametar nazvan "elementi". Ova potprogram ispisuje hladne brojeve koji izgledaju kao da "padaju", kao u filmu. Ovdje sam uzeo nekoliko stvari zdravo za gotovo. Nadam se da ćete im objasniti da ćete razumjeti odakle dolazim i da ćete to moći učiniti bolje od mene. Prvo, pretpostavljam da želite samo 5 stupaca brojeva i da su "elementi" djeljivi s brojem stupaca (5). To je bilo lako zajamčiti jer kasnije deklariram parametre proslijeđene u "matricu" na 200 i 100 (naziva se dvaput). Također pretpostavljam da želite da svih 5 stupaca bude uključeno prema zadanim postavkama. Mislim da izgleda u redu, ali možete promijeniti neke od njih u FALSE ako želite da prvi redak brojeva izgleda nasumično kao i ostali redovi. OK, dakle imamo 5 stupaca, imamo 200 / 5 = 40 redaka brojeva za prikaz (linesToWrite), a svi naši stupci uključeni su prema zadanim postavkama. Red 41: ulazimo u dvije petlje "za", od kojih prva (Petlja A) kruži kroz naše retke TooWrite, a druga (Petlja B) koja prolazi kroz broj stupaca. U petlji B odabiremo vrijednost varijable petlje loopB i ovisno o njenoj vrijednosti procjenjujemo naredbu If-Else. Ako je dotični stupac omogućen ("TRUE" ili "uključeno"), ispisat ćemo, putem "wshshell. SendKeys", vrijednost Int (okrugla (rnd ())), nakon čega slijedi kartica. Inače ćemo ispisati samo karticu, tako da se stupac čini praznim. Dakle, koja je vrijednost Int (Round (rnd ()))? rnd () vraća slučajni broj s pomičnim zarezom između 0,0 i 1,0, Round () će uzeti tu vrijednost i zaokružiti je na najbližu vrijednost Integer, a Int () šalje rezultat na cijeli broj. Ovaj posljednji korak mogao bi se smatrati pretjeranim, budući da bi nam poziv Round () trebao dati 0 ili 1. Učinio sam to samo zbog navike. U nekom trenutku netko mi je morao reći da je sigurnije, a ja to očito još nisam zaboravio. Na dio 3 …

Korak 5: Razumijevanje Kodeksa, dio 3

Kontinuirana pod matrica, evo sljedećih nekoliko redaka VB-a … "Ovo flip-flops kolone", pa ako je stupac ISKLJUČEN, bit će UKLJUČEN 30 posto vremena ", a ako je stupac UKLJUČEN, bit će isključeno 30 posto vremena. turnOffMax = 0,30 turnOnMax = 0,30Promjenom svakog stupca 30% vremena brojni stupci "padaju" na slučajan način, slično kao u filmu. Nije točno, ali blizu. 'Stupac 1 flip-flop flipMe = rnd () If ((col1 = turnOn) i (flipMe <turnOffMax)) Then col1 = turnOff Else If ((col1 = turnOff) i (flipMe <turnOnMax)) Tada je col1 = okrenutOn End IfThe gornji blok upravlja kako određujemo hoćemo li prikazati broj u danom stupcu tijekom sljedeće iteracije, za sljedeći red brojeva. Kôd glasi "ako je stupac uključen, a slučajni broj zvan flipMe manji od 30%, isključite stupac. U suprotnom, ako je stupac isključen, a flipMe manji od 30%, uključite stupac." gore pod matrica. Pređite na pomoćni ključ…

Korak 6: Pomoćni ključ ()

Metoda ključa je dolje.sub key (msg) 'učiniti ispise poruka "matrice" i izbrisati ihwswscript.sleep 1500length = len (msg) for position = 1 to length wshshell. SendKeys mid (msg, position, 1) wscript.sleep 250nextwscript.sleep 3000for position = 1 to length wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subOva metoda ispisuje niz "msg". Ispisat će sve što prođete. Ova metoda naziva se kasnije u kodu. Prva FOR petlja ispisuje svaki znak u nizu, jedan po jedan, i pauzira 250 milisekundi između svakog znaka. Zatim spavamo 3000 milisa (3 sekunde) i ispisujemo backspace za svaki znak koji smo prethodno ispisali, ovaj put spavajući malo manje. To je sve. Pređite na glavni dio programa, gdje se sve slaže.

Korak 7: Glavni

Glavna izvedba programa poziva waitFor i matricu (koju smo već obradili) za postavljanje svega i ispisivanje 200 binarnih znamenki raspoređenih u 5 stupaca. Ime trenutnog korisnika sustava tada se hvata i manipulira kako bi se ispisalo kao dio sekvence "buđenja". Zatim ulazimo u FOR petlju, za koju znamo da ćemo ponavljati samo 4 puta zbog "1" Ograničenje do 4 ". Zatim SELECT na našoj varijabli petlje (loopA), koja odgovara prvom CASE izrazu prvi put, drugom CASE izrazu drugi put kroz petlju, itd. Svaka iteracija petlje, myString postavljena je na ispravan niz prikaza glagol koji želimo ispisati, a ključna podrutina je pozvana da zapravo ispiše. Očito postoji mnogo drugih načina za projektiranje ove petlje, a to ću ostaviti čitatelju kao vježbu. Nakon što izađemo iz FOR petlje, ponovno pozivamo potprogram matrice za ispis više brojeva. Kao što komentar u kodu kaže, ovaj posljednji poziv matrix () možete staviti u petlju ako želite, ili ga možete jednostavno pozvati s većim brojem itd. Na kraju, naš poziv na quit () prekida program izvršenje (uvijek dobra praksa: P). Nadam se da će se svi zabaviti uzimajući moj primjer i poboljšavajući ga! Ako je ovaj Instructable pobudio vašu znatiželju s VB -om, Google vam može pružiti hrpu dobrih resursa da saznate više o njemu nego što vam mogu reći. Sretno kodiranje! martin

Preporučeni: