Kazalo:
- 1. korak: Zgrabi mojo kodo
- 2. korak: Izvajanje kode
- 3. korak: Razumevanje kodeksa, 1. del
- 4. korak: Razumevanje Kodeksa, 2. del
- 5. korak: Razumevanje kodeksa, 3. del
- 6. korak: Podključ ()
- 7. korak: Glavni
Video: Matrična koda - Visual Basic: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:08
Nova in izboljšana koda Visual Basic bo prikazala učinek, podoben "matriki", z drsenjem ene in ničle. Nato se prereže v matrično zaporedje "Wake Up Neo" in nato še naprej pomika številke. Zavedam se, da to ni ravno tako zaporedje v filmu, vendar so ljudje zahtevali to funkcijo, zato sem jo dodal. Mislim, da je način, kako naključno prikažem stolpce One in Zero, najlepši del kode. Razpravljal bom o tem, kaj sem naredil kasneje. Ta Instructable je odgovor na Brennn10 -jevo "Welcome to the Matrix in Command Prompt" Instructable. Koda, ki sestavlja ta Instructable, je sprva temeljila na kodi, objavljeni v komentarju DarkJokerja na zgornji Instructable. Namerno sem bil pri razlagi kode precej izrecno, saj sem od prvega prejel kar nekaj prošenj za pojasnilo. objavil to rešitev.
1. korak: Zgrabi mojo kodo
Spodaj sem priložil svojo kodo. Obe datoteki (startMatrix.itsabat in matrix.itsavbs) shranite v isto mapo na svojem računalniku in odstranite "itsa" del imena datoteke, to je preimenujte datoteke v startMatrix.bat in matrix.vbs. Datoteke Bat in datoteke vbs so izvedljive, zato jih s temi razširitvami ne morem naložiti tukaj. Zato jih morate lokalno shraniti in preimenovati.
2. korak: Izvajanje kode
Če želite zagnati mojo kodo, sledite spodnjim navodilom. Če ne želite na svojem računalniku izvesti nekaj, o čemer ne veste nič, ste pametni. Nadaljujte z naslednjim korakom, kjer se sprehodim po kodi in vam pokažem, da nisem storil nič hudega. Če pa želite le priti do nje (ali pa ste na računalniku nekoga drugega in ne oskrba), kodo začnemo takole: 1. korak: dvokliknite »startMatrix.bat«. To je to. Zdaj pojdite na naslednji korak in preberite o hladnosti, ki ste jo pravkar videli.
3. korak: Razumevanje kodeksa, 1. del
Poglejmo kodo od začetka. Upam, da se boste o moji kodi dovolj naučili o VB, da se boste naučili kodirati v VB bolje od mene:) Najprej imamo dve datoteki: datoteko bat in datoteko vbs. Če uredite datoteko bat, boste po nastavitvi okna, barve besedila in naslova okna izvedli datoteko vbs. Preidimo na bolj zanimive stvari v datoteki vbs. FYI, tukaj se bom dotaknil le najbolj zanimivih vrstic kode. Upoštevajte tudi vrstice, ki se začnejo z '(označite ali enojni narekovaj). To so komentarji in NE BODO IZVEDENI. Prvih nekaj vrstic matrix.vbs pravi "Nastavi moja sporočila o napakah na eksplicitno raven", hkrati pa "Naj napake, ki sem jih naredil, ne bodo usodne." Prava razprava ni potrebna. 5. vrstica: Naša nejasna izjava tukaj postavlja vse spremenljivke, ki jih bomo uporabljali skozi celotno obdobje našega malega programa. Za te spremenljivke nam ni treba razglasiti tipov ali začetnih vrednosti, kot bi lahko v nekaterih drugih jezikih. VB je tako "močan". Vrstica 12: objSysInfo nam omogoča, da zberemo nekaj informacij o sistemu, v katerem delujemo. Tukaj ustvarimo objekt in v vrstici 13 objSysInfo. UserName vrne ime trenutno prijavljenega uporabnika, ki izvaja to kodo. To bo kasneje uporabljeno namesto "Neo", tako da lahko naš skript reče "Zbudi se, Martin …", če se izvaja na mojem računalniku, ali "Zbudi se, Brennn10 …", če se izvaja na stroju Brennn10 in če To je bilo njegovo uporabniško ime. Uporaba sistemskega uporabniškega imena vam omogoča, da ga vržete na odklenjen stroj svojega prijatelja in bo samodejno potegnil njegovo ime, ne da bi mu bilo treba spreminjati kodo. Gremo naprej.
4. korak: Razumevanje Kodeksa, 2. del
Vrstica 16: sub waitfor je naša prva podprogram. Podprogram lahko pokličete z drugega mesta v kodi, izvede kodo v telesu podprograma in nato vrne programski nadzor klicni kodi. waitfor nam namesti lupino. Če to naredimo v zanki s "spanjem" v zanki, omogočimo, da se aktivacija lupine dokonča, preden se vrne nadzor, kar je zelo dobro. Vrstica 26: sub matrica je naša druga podprogram in traja parameter, imenovan "elementi". Ta podprogram tiska kul številke, ki se zdijo "padle", kot v filmu. Tukaj sem nekaj stvari vzel za samoumevne. Upam, da boste z razlago razumeli, od kod prihajam, in boste to zmogli bolje kot jaz. Najprej predvidevam, da želite le 5 stolpcev številk in da so "elementi" deljivi s številom stolpcev (5). To je bilo enostavno zagotoviti, ker pozneje razglasim, da so parametri, posredovani "matriki", 200 in 100 (kliče se dvakrat). Predvidevam tudi, da želite privzeto vklopiti vseh 5 stolpcev. Mislim, da je videti v redu, vendar lahko nekaj teh spremenite v FALSE, če želite, da se prva vrstica števcev zdi tako naključna, kot bodo ostale vrstice. V redu, zato imamo 5 stolpcev, imamo 200 / 5 = 40 vrstic številk za prikaz (linesToWrite) in vsi naši stolpci so privzeto vklopljeni. Vrstica 41: vstopamo v dve zanki "za", od katerih prva (zanka A) kroži po naših vrsticahToWrite in druga (Zanka B), ki kroži skozi število stolpcev. V zanki B izberemo vrednost spremenljivke zanke loopB in glede na njeno vrednost ocenimo stavek If-Else. Če je zadevni stolpec omogočen ("TRUE" ali "enabled"), bomo preko "wshshell. SendKeys" natisnili vrednost Int (Round (rnd ())), čemur sledi zavihek. V nasprotnem primeru bomo natisnili samo zavihek, tako da bo stolpec videti prazen. Torej, kakšna je vrednost Int (Round (rnd ()))? rnd () vrne naključno število s plavajočo vejico med 0,0 in 1,0, Round () bo vzelo to vrednost in jo zaokrožilo na najbližjo vrednost Integer, Int () pa vrne rezultat na Celo število. Ta zadnji korak bi lahko šteli za pretiravanja, saj bi nam klic Round () moral dati 0 ali 1. To sem naredil samo zaradi navade. V nekem trenutku mi je nekdo zagotovo rekel, da je varnejše in očitno tega še nisem pozabil.
5. korak: Razumevanje kodeksa, 3. del
Nadaljnja pod matrika, tukaj je naslednjih nekaj vrstic VB … 'Ta stolpci z japonkami', tako da če je stolpec IZKLOPLJEN, se bo vklopil 30 odstotkov časa, 'in če je stolpec VKLOPLJEN, bo izklopili 30 odstotkov časa. turnOffMax = 0,30 turnOnMax = 0,30 S preklopom na vsak stolpec 30% časa številčni stolpci "naključno" padejo, podobno kot v filmu. Ne natančno, ampak blizu. 'Stolpec 1 flip-flop flipMe = rnd () If ((col1 = turnOn) in (flipMe <turnOffMax)) Potem col1 = turnOff Else If ((col1 = TurnOff) in (flipMe <turnOnMax)) Potem je col1 = TurnOn End IfThe zgornji blok obravnava, kako določimo, ali bomo v naslednjem ponavljanju za naslednjo vrstico številk prikazali številko v danem stolpcu. Koda se glasi "če je stolpec vklopljen in je naključno število, imenovano flipMe, manjše od 30%, izklopite stolpec. V nasprotnem primeru, če je stolpec izklopljen in je flipMe manjši od 30%, vklopite stolpec." To zavije gor pod matriko. Na podključ…
6. korak: Podključ ()
Metoda ključa je spodaj.sub key (msg) 'naredite izpise "matričnih" sporočil in jih izbrišitewscript.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 subTa metoda natisne niz "msg". Natisnilo bo vse, kar prenesete. Ta metoda je pozneje v kodi. Prva zanka FOR natisne vsak znak v nizu, enega za drugim, in se med vsakim znakom zaustavi za 250 milisekund. Nato spimo 3000 milisekund (3 sekunde) in za vsak znak, ki smo ga prej natisnili, izpišemo hrbet, tokrat malo manj. To je vse. Na glavni del programa, kjer je vse skupaj.
7. korak: Glavni
Glavna izvedba programa kliče waitFor in matrico (ki smo jo že obravnavali), da nastavimo vse in izpišemo 200 binarnih številk, razporejenih v 5 stolpcih. Ime trenutnega sistemskega uporabnika se nato zgrabi in manipulira, da se natisne kot del zaporedja "prebujanja". Nato vnesemo zanko FOR, za katero vemo, da jo bomo zaradi "1" ponavljali le 4 -krat. Do 4 "omejitve. Nato izberemo na spremenljivki zanke (loopA), ki se prvič ujema s prvim stavkom CASE, drugič po zanki drugi ukaz CASE itd. Vsaka ponovitev zanke je myString nastavljena na pravilno predstavitev niza besedo, ki jo želimo natisniti, in ključna podprogram je poklican za tiskanje. Očitno obstaja veliko drugih načinov za oblikovanje te zanke in to bom prepustil bralcu kot vajo. Ko zapustimo zanko FOR, znova pokličemo podprogram matrike, da natisnemo več številk. Kot pravi komentar v kodi, lahko ta zadnji klic matrix () postavite v zanko, če želite, ali pa ga preprosto pokličete z večjim številom itd. Nazadnje, naš klic quit () prekine program izvedba (vedno dobra praksa: P). Upam, da se bodo vsi zabavali ob mojem zgledu in ga izboljšali! Če je ta Instructable z VB vzbudil vašo radovednost, lahko Google zagotovi ogromno dobrih virov, če želite izvedeti več o tem, kot vam lahko povem. Veselo kodiranje! martin
Priporočena:
Matrična svetilka z omogočeno WiFi: 6 korakov (s slikami)
Matrična svetilka z omogočeno WiFi: Kdo ne želi imeti osupljive svetilke, ki lahko prikazuje animacije in se sinhronizira z drugimi svetilkami v hiši? Prav, nihče. Zato sem naredil svetilko RGB po meri. Svetilka je sestavljena iz 256 posamezno naslovljivih LED, vse LED pa je mogoče krmiliti
Zadnja matrična kolesna luč: 5 korakov
Zadnja matrična kolesna luč: Pozdravljeni vsi! Vedno sem bil navdušen nad LED diodami in načinom njihovega žarenja, tako očarljiv je, še posebej matrični 8 x 8 in RGB trakovi. Že dolgo sem si želel zgraditi zadnjo luč za kolo in zdaj, ko sem sposoben zgraditi o
ESP8266 LED matrična ura: 8 korakov (s slikami)
ESP8266 LED matrična ura: ESP8266 LED matrična ura Enostavna LED matrična ura na osnovi priljubljenega ESP8266 z modulom ure v realnem času in časovno sinhronizacijo prek WiFi iz strežnika NTP. NOVO! Na voljo je tudi različica ESP32
Matrična ura ESP32 LED: 8 korakov
ESP32 LED Matrix Clock: To je nadaljevanje projekta ESP8266 LED Matrix Clock. Avtor prvotne kode ga je posodobil za ESP32 (velika hvala schreibfaul1!), Zato sem se odločil tudi posodobiti uro, ki sem jo že naredil
Matrična budilka LED (s predvajalnikom MP3): 6 korakov (s slikami)
Matrična budilka z LED matrikami (s predvajalnikom MP3): Ta budilka na osnovi Arduina ima vse, kar bi pričakovali od alarma - možnost, da vas zbudi z vsako pesmijo, ki vam je všeč, gumb za dremež in enostaven za upravljanje s tremi gumbi. Obstajajo trije glavni bloki - LED matrika, modul RTC in