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, Juli
Anonim
Matrix Code - Visual Basic
Matrix Code - Visual Basic

Novi i poboljšani kod Visual Basica prikazat će efekt sličan "Matrixu", s pomicanjem brojeva One i Zero. Zatim se prelazi na matrični "Wake Up Neo" niz, a zatim nastavlja pomicati brojeve. Shvaćam da ovo nije baš način na koji sekvenca ide unutar filma, ali bilo je ljudi koji su tražili ovu funkciju, pa sam je dodao. Mislim da je način na koji nasumično odabirem prikaz stupaca One i Zero najljepši dio koda. Kasnije ću raspravljati o tome šta sam uradio. 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 koji je DarkJoker objavio u komentaru na gornju Instructable. Namjerno sam bio prilično eksplicitan u svom objašnjenju koda jer sam dobio dosta zahtjeva za pojašnjenjem od svoje prve objave 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) u istu mapu na vašem računaru 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 učitati s tim ekstenzijama. Zbog toga ih morate spremiti i preimenovati lokalno.

Korak 2: Izvršenje koda

Ako želite pokrenuti moj kôd, slijedite upute u nastavku. Ako ne želite izvršiti na svom računaru nešto o čemu ne znate ništa, pametni ste. Trebali biste prijeći na sljedeći korak, gdje vam prolazim kroz kôd i pokazujem vam da nisam učinio ništa opasno. Međutim, ako samo želite doći do njega (ili ste na tuđoj mašini, a ne briga), evo kako započeti kôd: Korak 1: 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 linija koda. Također, obratite posebnu pažnju na redove koji počinju s '(označite ili jednim navodnikom). Ovo su komentari i NEĆE SE IZVRŠITI. Prvih nekoliko redova matrix.vbs kaže "Postavi moje poruke o grešci na eksplicitan nivo", ali istovremeno "Ne dozvoli da bilo koje greške koje sam napravio budu fatalne." Prava rasprava nije potrebna. Red 5: Naša nejasna izjava ovdje postavlja sve varijable koje ćemo koristiti tokom trajanja našeg malog programa. Ne moramo deklarirati tipove ovih varijabli ili početne vrijednosti za njih, kao što bismo mogli u nekim drugim jezicima. VB je ovako "moćan". Red 12: objSysInfo nam omogućava da prikupimo neke informacije o sistemu na kojem radimo. Ovdje stvaramo objekt, a na liniji 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š Skript može reći "Probudi se, Martine …" ako se pokreće na mojoj mašini, ili "Probudi se, Brennn10 …" ako se pokreće na Brennn10 mašini i ako to je bilo njegovo korisničko ime. Upotreba korisničkog imena sistema omogućava vam da ga bacite na otključanu mašinu vašeg prijatelja i automatski će povući njegovo ime, bez potrebe za mijenjanjem koda. Idemo dalje.

Korak 4: Razumijevanje Kodeksa, 2. dio

Red 16: sub waitfor je naša prva potprogram. Potprogram 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 dobra stvar. Red 26: sub matrica je naša druga potprogram i uzima parametar koji se naziva "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 razumijete 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 red brojeva izgleda nasumično kao i ostali redovi. OK, dakle imamo 5 kolona, imamo 200 / 5 = 40 redova brojeva za prikaz (linesToWrite), a svi naši stupci su uključeni prema zadanim postavkama. Red 41: ulazimo u dvije petlje "za", od kojih prva (Petlja A) kruži kroz naše linijeToWrite, a druga (Petlja B) koja kruži kroz broj stupaca. U petlji B odabiremo vrijednost varijable petlje loopB i ovisno o njenoj vrijednosti procjenjujemo naredbu If-Else. Ako je dotična kolona omogućena ("TRUE" ili "uključeno"), mi ćemo putem "wshshell. SendKeys" ispisati vrijednost Int (okrugla (rnd ())), nakon čega slijedi kartica. U suprotnom ćemo ispisati samo karticu, tako da kolona izgleda prazna. 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, jer bi poziv Round () trebao dati 0 ili 1. Učinio sam to samo zbog navike. U nekom trenutku mora da mi je neko rekao da je sigurnije, a ja to očigledno još nisam zaboravio. Na dio 3 …

Korak 5: Razumijevanje Kodeksa, dio 3

Nastavljajući pod matricu, evo sljedećih nekoliko redaka VB-a … "Ovo japanke", pa ako je kolona ISKLJUČENA, bit će UKLJUČENA 30 posto vremena, "a ako je kolona UKLJUČENA, bit će to isključeno 30 posto vremena. turnOffMax = 0,30 turnOnMax = 0,30Promjenom svake kolone 30% vremena brojne kolone "padaju" na slučajan način, slično kao u filmu. Nije tačno, ali blizu. 'Kolona 1 flip-flop flipMe = rnd () If ((col1 = turnOn) i (flipMe <turnOffMax)) Then col1 = turnOff Else If ((col1 = turnOff) i (flipMe <turnOnMax)) Zatim je col1 = uključeno End IfThe gornji blok upravlja načinom na koji određujemo hoćemo li prikazati broj u datom stupcu tokom sljedeće iteracije, za sljedeći red brojeva. Kôd glasi "ako je kolona uključena, a slučajni broj koji se zove flipMe manji od 30%, isključite kolonu. U suprotnom, ako je kolona isključena i flipMe je manji od 30%, uključite kolonu." To završava gore pod matrica. Pređite na pomoćni ključ…

Korak 6: Pomoćni ključ ()

Metoda ključa je dolje.sub key (msg) 'uradi ispis poruka "matrice" i obriši 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". Štampaće sve što prođete. Ova metoda se kasnije poziva 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 odštampali, spavajući ovaj put 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 sistema 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 je postavljena na ispravan niz stringova glagol koji želimo odštampati, a potprogram ključa je pozvan da zaista štampa. Očigledno je da postoji mnogo drugih načina za dizajniranje ove petlje, a to ću ostaviti čitatelju kao vježbu. Kada izađemo iz FOR petlje, ponovo pozivamo potprogram matrice za ispis više brojeva. Kao što komentar u kodu kaže, ovaj posljednji poziv na 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 može pružiti hrpu dobrih resursa da sazna više o njemu nego što vam mogu reći. Sretno kodiranje! martin

Preporučuje se: