Përmbajtje:
- Hapi 1: Kapni Kodin tim
- Hapi 2: Ekzekutimi i Kodit
- Hapi 3: Kuptimi i Kodit, Pjesa 1
- Hapi 4: Kuptimi i Kodit, Pjesa 2
- Hapi 5: Kuptimi i Kodit, Pjesa 3
- Hapi 6: Nën -çelësi ()
- Hapi 7: Kryesor
Video: Kodi i matricës - Visual Basic: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:30
Kodi i ri dhe i përmirësuar i Visual Basic do të shfaqë një efekt të ngjashëm me "Matricën", me rrotullimin e One's dhe Zero's. Pastaj kalon në sekuencën Matrix "Wake Up Neo", dhe pastaj vazhdon të rrotullojë numrat. E kuptoj që kjo nuk është saktësisht se si shkon sekuenca brenda filmit, por kishte njerëz që kërkonin këtë funksionalitet, kështu që e shtova. Unë mendoj se mënyra se si e rastësoj shfaqjen e kolonave të One's dhe Zero është pjesa më e pastër e kodit. Unë diskutoj saktësisht atë që bëra më vonë. Ky Instructable është në përgjigje të Brennn10's "Welcome to the Matrix in Command Prompt" Instructable. Kodi që përbën këtë Instructable u bazua fillimisht në kodin e postuar në një koment nga DarkJoker mbi Instructable më sipër. Unë kam qenë qëllimisht mjaft i qartë me shpjegimin tim të kodit pasi kam marrë mjaft kërkesa për sqarime që nga fillimi postoi këtë zgjidhje.
Hapi 1: Kapni Kodin tim
Kam bashkangjitur kodin tim më poshtë. Ruani të dy skedarët (startMatrix.itsabat dhe matrix.itsavbs) brenda të njëjtit dosje në kompjuterin tuaj dhe hiqni pjesën "itsa" të emrit të skedarit, domethënë riemërtoni skedarët në startMatrix.bat dhe matrix.vbs. Skedarët Bat dhe skedarët vbs janë të ekzekutueshëm, dhe për këtë arsye nuk mund t'i ngarkoj me ato shtesa këtu. Kjo është arsyeja pse ju duhet t'i ruani dhe riemërtoni ato në vend.
Hapi 2: Ekzekutimi i Kodit
Nëse doni të ekzekutoni kodin tim, ndiqni udhëzimet e mëposhtme. Nëse nuk doni të ekzekutoni diçka në makinën tuaj për të cilën nuk dini asgjë, jeni të zgjuar. Ju duhet të vazhdoni në hapin tjetër, ku unë kaloj përmes kodit dhe ju tregoj se nuk kam bërë asgjë mashtruese. Megjithatë, nëse thjesht doni të arrini tek ai (ose jeni në makinën e dikujt tjetër dhe mos kujdes), ja si të filloni kodin: Hapi 1: klikoni dy herë mbi "startMatrix.bat". Kjo është ajo. Tani vazhdoni në hapin tjetër për të lexuar për freskinë që sapo keni parë.
Hapi 3: Kuptimi i Kodit, Pjesa 1
Le t'i hedhim një sy kodit, duke filluar nga fillimi. Shpresoj se mund të mësoni mjaftueshëm për VB nga kodi im që do të shkëputeni dhe do të mësoni se si të kodoni në VB më mirë se unë:) Pra, së pari, së pari, kemi 2 skedarë: një skedar bat dhe një skedar vbs. Nëse redaktoni skedarin bat, do të vini re se ekzekuton skedarin vbs, pasi të keni vendosur dritaren, ngjyrën e tekstit dhe titullin e dritares. Le të kalojmë në gjërat më interesante në skedarin vbs. FYI, unë do të prek vetëm rreshtat më interesantë të kodit këtu. Gjithashtu, kushtojini vëmendje rreshtave që fillojnë në një '(shënoni, ose kuotë e vetme) Me Këto janë komente dhe NUK do të ekzekutohen. Rreshtat e parë të matrix.vbs thonë "Vendosni mesazhet e mia të gabimit në nivelin eksplicit", por në të njëjtën kohë "Mos lejoni që ndonjë gabim që kam bërë të jetë fatal." Asnjë diskutim i vërtetë nuk nevojitet. Linja 5: Deklarata jonë e zbehtë këtu vendos të gjitha variablat që do të përdorim gjatë gjithë jetës së programit tonë të vogël. Ne nuk kemi nevojë të deklarojmë lloje për këto ndryshore, ose vlera fillestare për to, siç mund të bëjmë në disa gjuhë të tjera. VB është "e fuqishme" si kjo. Linja 12: objSysInfo na lejon të mbledhim disa informacione mbi sistemin në të cilin po punojmë. Ne krijojmë objektin këtu, dhe në Linjën 13, objSysInfo. UserName kthen emrin e përdoruesit të regjistruar aktualisht që po ekzekuton këtë kod. Kjo do të përdoret më vonë në vend të "Neo", në mënyrë që Skenari ynë të thotë "Zgjohu, Martin …" nëse po funksionon në makinën time, ose "Zgjohu, Brennn10 …" nëse po funksionon në makinën e Brennn10 dhe nëse ky ishte emri i përdoruesit. Përdorimi i emrit të përdoruesit të Sistemit ju lejon ta hidhni në makinën e zhbllokuar të shokut tuaj dhe ai do ta tërheqë emrin e tij automatikisht, pa pasur nevojë të ndryshojë kodin. Le të vazhdojmë.
Hapi 4: Kuptimi i Kodit, Pjesa 2
Linja 16: nën -pritësi është nënrutina jonë e parë. Një nënrutinë mund të thirret nga një vend tjetër në kod, do të ekzekutojë kodin brenda trupit të nënrutinës dhe më pas do të kthejë kontrollin e programit në kodin e thirrjes. waitfor na vendos guaskën tonë. Duke e bërë këtë në një lak me një "gjumë" brenda lakut, ne lejojmë që aktivizimi i guaskës të përfundojë para se të kthehet kontrolli, gjë që është një gjë shumë e mirë. Linja 26: nën -matrica është nënrutina jonë e dytë dhe merr një parametër i quajtur "elemente". Kjo nënrutinë bën shtypjen e numrave të ftohtë që duket se "bien", si në film. Kam marrë disa gjëra si të mirëqena këtu. Shpresoj se duke i shpjeguar ata do të kuptoni se nga vij dhe mund ta bëni më mirë se unë. Së pari, unë supozoj se ju doni vetëm 5 kolona numrash, dhe se "elementët" ndahen me numrin e kolonave (5) Kjo ishte e lehtë për tu garantuar sepse më vonë deklaroj se parametrat e kaluar në "matricë" janë 200 dhe 100 (quhet dy herë). Unë gjithashtu supozoj se ju dëshironi që të 5 kolonat të ndizen si parazgjedhje. Unë mendoj se duket në rregull, por ju mund të ndryshoni disa prej tyre në FALSE nëse dëshironi që rreshti i parë i numrave të duket aq i rastësishëm sa pjesët e tjera të rreshtave. OK, kështu që ne kemi 5 kolona, kemi 200 / 5 = 40 rreshta numrash për t'u shfaqur (linesToWrite), dhe të gjitha kolonat tona janë të ndezura si parazgjedhje. Linja 41: futemi në dy sythe "for", e para prej të cilave (Loop A) kalon nëpër linjat tonaToWrite dhe e dyta (Loop B) që qarkullon nëpër numrin e kolonave. Në lakun B, ne zgjedhim vlerën e ndryshores loop loopB, dhe në varësi të vlerës së saj ne vlerësojmë një deklaratë If-Else. Nëse kolona në fjalë është e aktivizuar ("TRUE", ose "e ndezur"), ne do të printojmë, nëpërmjet "wshshell. SendKeys", vlerën e Int (Round (rnd ())), e ndjekur nga një skedë. Përndryshe, ne do të shtypim vetëm një skedë, të tillë që kolona të duket bosh. Pra, cila është vlera e Int (Round (rnd ()))? rnd () kthen një numër të rastësishëm të pikës lundruese midis 0.0 dhe 1.0, Round () do ta marrë atë vlerë dhe do ta rrumbullakos atë në vlerën më të afërt të Integerit, dhe Int () e hedh rezultatin në një numër të plotë. Ky hap i fundit mund të konsiderohet i tepërt, pasi thirrja Round () duhet të na japë 0 ose 1. Unë e bëra atë vetëm për shkak të zakonit. Në një moment dikush duhet të më ketë thënë se ishte më e sigurt, dhe me sa duket nuk e kam harruar akoma. Në Pjesën 3…
Hapi 5: Kuptimi i Kodit, Pjesa 3
Duke vazhduar nën-matricën, këtu janë rreshtat e ardhshëm të VB … 'Këto kolona të rrokullisjes', kështu që nëse një kolonë është OFF, ajo do të ndizet 30 përqind e kohës, 'dhe nëse një kolonë është ON, do të jetë fikur 30 përqind të kohës. turnOffMax = 0.30 turnOnMax = 0.30Zbërthimi i secilës kolonë 30% të kohës bën që kolonat e numrave të "bien" në mënyrë të rastësishme të ngjashme me atë që bëjnë në film. Jo e saktë, por afër. 'Kolona 1 rrokullisje flipMe = rnd () Nëse ((col1 = kthyerOn) dhe (flipMe <turnOffMax)) Pastaj col1 = turnOff Else If ((col1 = turnOff) dhe (flipMe <turnOnMax)) Pastaj col1 = turnOn Fund IfThe blloku i mësipërm trajton se si përcaktojmë nëse do të shfaqim një numër në kolonën e dhënë gjatë përsëritjes tjetër, për rreshtin tjetër të numrave. Kodi thotë "nëse kolona është e ndezur dhe numri i rastësishëm i quajtur flipMe është më pak se 30%, fikeni kolonën. Përndryshe, nëse kolona është e fikur dhe flipMe është më pak se 30%, ndizni kolonën." Kjo përfundon lart nën Matrica. Për te nënçelësi…
Hapi 6: Nën -çelësi ()
Metoda kryesore është më poshtë.sub kyç (msg) 'bëni printime të mesazheve "të matricës" dhe fshini themwscript.sleep 1500length = len (msg) for position = 1 to length wshshell..sleep 250nextwscript.sleep 3000për pozicionin = 1 në gjatësi wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75 zgjatni nënKjo metodë printon një varg "msg". Do të printojë gjithçka që e kaloni. Kjo metodë quhet më vonë në kod. Lakri i parë FOR printon secilin karakter në varg, një nga një dhe ndalon për 250 milisekonda në mes secilit karakter. Ne pastaj flemë për 3000 mililitra (3 sekonda) dhe shkruajmë një hapësirë prapa për secilin personazh që kemi printuar më parë, duke fjetur këtë herë pak më pak. Kjo është gjithçka që ka për të. Në pjesën kryesore të programit, ku gjithçka bashkohet.
Hapi 7: Kryesor
Ekzekutimi kryesor i programit thërret waitFor dhe matricën (të cilën e kemi mbuluar tashmë) për të vendosur gjithçka dhe për të shkruar 200 shifra binare, të shpërndara në 5 kolona. Emri i përdoruesit aktual të sistemit kapet dhe manipulohet për t'u shtypur si pjesë e sekuencës "zgjohu". Ne pastaj futim një lak FOR, të cilin e dimë se do ta përsërisim vetëm 4 herë për shkak të "1 Për kufizimin 4 ". Ne pastaj SELECT në variablin tonë loop (loopA), i cili përputhet me deklaratën e parë CASE herën e parë përmes, deklaratën e dytë CASE herën e dytë përmes lakut, etj. Çdo përsëritje e lakut, myString është vendosur në përfaqësimin e saktë të vargut të fjalia që duam të shtypim, dhe nënrutina kryesore është thirrur për të bërë në fakt shtypjen. Ka padyshim shumë mënyra të tjera për të hartuar këtë lak, dhe unë do ta lë atë si një ushtrim për lexuesin. Pasi të dalim nga laku FOR, ne përsëri e quajmë nënrutinën e matricës për të printuar më shumë numra. Siç thotë komenti në kod, ju mund ta vendosni këtë thirrje përfundimtare në matricë () në një lak nëse dëshironi, ose thjesht mund ta telefononi me një numër më të madh, etj. Së fundi, thirrja jonë për të lënë () ndërpret programin ekzekutimi (praktikë gjithmonë e mirë: P). Shpresoj që të gjithë të argëtohen duke marrë shembullin tim dhe duke e bërë atë më të mirë! Nëse ky Instructable ka ngjallur kureshtjen tuaj me VB, Google mund të sigurojë një ton burimesh të mira për të mësuar më shumë rreth tij sesa mund t'ju them. Kodim i lumtur! martin
Recommended:
Drita e orës së ekranit të matricës me shirit LED të kontrolluar me WiFi: 3 hapa (me fotografi)
Drita e orës së ekranit të matricës me shirit LED të kontrolluar me WiFi: Shirita LED të programueshëm, p.sh. bazuar në WS2812, janë interesante. Aplikimet janë të shumta dhe shpejt mund të merrni rezultate mbresëlënëse. Dhe disi ndërtimi i orëve duket se është një fushë tjetër për të cilën mendoj shumë. Duke filluar me një përvojë në
Drita e biçikletës së matricës së pasme: 5 hapa
Drita e biçikletës së matricës së pasme: Përshëndetje të gjithëve! Unë kam qenë gjithmonë i magjepsur nga LEDS dhe mënyra se si ato shkëlqejnë, është po aq hipnotizuese, veçanërisht shiritat me matricë 8 x 8 dhe RGB. Kam dashur të ndërtoj një dritë të pasme biçikletash për biçikletën time për një kohë të gjatë dhe tani që jam në gjendje për të ndërtuar
Ora e matricës LED ESP8266: 8 hapa (me fotografi)
Ora e Matricës LED ESP8266: Ora e Matricës LED ESP826 Ora e thjeshtë e matricës LED bazuar në ESP8266 të njohur me modulin Ora e Kohës Real dhe sinkronizimin e kohës mbi WiFi nga një server NTP. E RE! Versioni ESP32 është gjithashtu i disponueshëm
Ora e matricës LED ESP32: 8 hapa
Ora e Matricës LED ESP32: Kjo është një vazhdim i projektit ESP8266 LED Matrix Clock. Autori i kodit origjinal e përditësoi atë për ESP32 (falënderim i madh për schreibfaul1!) Kështu që vendosa të përditësoj edhe Orën që kam bërë tashmë
Bordi i Matricës me pika: 8 hapa
Bordi i Matricës Dot: Ky Bord i Matricës Dot përbëhet nga tre MAX7219 që mund të tregojnë çdo shkronjë ose numër rresht. Ky projekt Arduino bazohet në këtë faqe në internet. Nga uebfaqja e mëparshme, shtova edhe 2 Dot Matrix, një buton dhe një altoparlant. Ndërsa letrat