Talaan ng mga Nilalaman:

Matrix Code - Visual Basic: 7 Mga Hakbang
Matrix Code - Visual Basic: 7 Mga Hakbang

Video: Matrix Code - Visual Basic: 7 Mga Hakbang

Video: Matrix Code - Visual Basic: 7 Mga Hakbang
Video: Eigenvalue and Eigenvector Computations Example 2024, Hulyo
Anonim
Matrix Code - Visual Basic
Matrix Code - Visual Basic

Ang bago at pinahusay na Visual Basic code ay magpapakita ng isang katulad na "Matrix" na epekto, kasama ang pag-scroll sa Isa at Zero. Pagkatapos ay pinuputol ang pagkakasunud-sunod ng Matrix na "Wake Up Neo", at pagkatapos ay patuloy na mag-scroll ng mga numero. Napagtanto kong hindi ito eksakto kung paano ang pagkakasunud-sunod sa loob ng pelikula, ngunit may mga taong humihiling para sa pagpapaandar na ito, kaya idinagdag ko ito. Sa palagay ko ang paraan ng pag-random ko sa pagpapakita ng mga haligi ng One's at Zero's ay ang mas maayos na bahagi ng code. Tinalakay ko nang eksakto kung ano ang ginawa ko sa paglaon. Ang Instructable na ito ay bilang tugon sa "Maligayang Pagdating sa Matrix in Command Prompt" na Maituturo ni Brennn10. Ang code na bumubuo sa Instructable na ito ay unang nakabatay sa code na nai-post sa isang komento ni DarkJoker sa itaas na Maaaring turuan. Sinadya kong maging malinaw sa aking paliwanag ng code dahil nakuha ko ang ilang mga kahilingan para sa paglilinaw mula pa noong una ako nai-post ang solusyon na ito.

Hakbang 1: Kunin ang Aking Code

Ikinabit ko ang aking code sa ibaba. I-save ang parehong mga file (startMatrix.itsabat at matrix.itsavbs) sa loob ng parehong folder sa iyong machine, at alisin ang "itsa" na bahagi ng filename, ibig sabihin palitan ang pangalan ng mga file upang startMatrix.bat at matrix.vbs. Ang mga file ng bat at vbs file ay naisasakatuparan, at samakatuwid ay hindi ko mai-upload ang mga ito sa mga extension dito. Ito ang dahilan kung bakit dapat mong i-save at palitan ang pangalan ng mga ito nang lokal.

Hakbang 2: Pagpapatupad ng Code

Kung nais mong patakbuhin ang aking code, sundin ang mga tagubilin sa ibaba. Kung hindi mo nais na magpatupad ng isang bagay sa iyong machine na hindi mo alam tungkol sa anumang bagay, ikaw ay matalino. Dapat kang magpatuloy sa susunod na hakbang, kung saan dinadaan ko ang code at ipinapakita sa iyo na wala akong nagawa na anumang masama. Gayunpaman, kung nais mo lamang makarating dito (o nasa machine ka ng iba at hindi care), narito kung paano simulan ang code: Hakbang 1: mag-double click sa "startMatrix.bat". Iyon lang. Ngayon magpatuloy sa susunod na hakbang upang basahin ang tungkol sa lamig na nakita mo.

Hakbang 3: Pag-unawa sa Code, Bahagi 1

Tingnan natin ang code, simula sa simula. Inaasahan kong matutunan mo ng sapat ang tungkol sa VB mula sa aking code na mag-o-off ka at malaman kung paano mas mahusay ang pag-code sa VB kaysa sa akin:) Kaya unang mga bagay muna, mayroon kaming 2 mga file: isang bat file at isang vbs file. Kung ie-edit mo ang bat file, mapapansin mong isinasagawa nito ang vbs file, pagkatapos i-set up ang window, kulay ng teksto at pamagat ng window. Lumipat tayo sa mas kawili-wiling mga bagay sa file ng vbs. FYI, makikipag-ugnay lamang ako sa mga pinaka-kagiliw-giliw na linya ng code dito. Gayundin, magbayad ng partikular na tala sa mga linya na nagsisimula sa isang '(tik, o solong quote). Ito ang mga puna, at HINDI MAAARI. Ang mga unang ilang linya ng matrix.vbs ay nagsabing "Itakda ang aking mga mensahe sa error sa malinaw na antas" ngunit sa parehong oras na "Huwag hayaan ang anumang pagkakamali na nagawa ko na nakamamatay." Hindi kinakailangan ng tunay na talakayan. Linya 5: Ang aming madilim na pahayag dito ay nagtatakda ng lahat ng mga variable na gagamitin namin sa buong buhay ng aming maliit na programa. Hindi namin kailangang ideklara ang mga uri para sa mga variable na ito, o mga paunang halaga para sa mga ito, tulad ng maaari naming sa ilang ibang mga wika. Ang VB ay "malakas" tulad nito. Linya 12: pinapayagan kami ng objSysInfo na mangalap ng ilang impormasyon sa system kung saan kami tumatakbo. Ginagawa namin ang object dito, at sa Line 13, ibinalik ng objSysInfo. UserName ang pangalan ng kasalukuyang naka-log in na gumagamit na nagpapatupad ng code na ito. Ito ay gagamitin sa paglaon bilang kapalit ng "Neo", upang masabi ng aming Script na "Wake up, Martin …" kung ito ay pinapatakbo sa aking makina, o "Wake up, Brennn10 …" kung ito ay pinapatakbo sa makina ni Brennn10 at kung iyon ang kanyang username. Ang paggamit ng pangalan ng gumagamit ng System ay nagbibigay-daan sa iyo upang itapon ito sa naka-unlock na makina ng iyong kaibigan at awtomatiko nitong hilahin ang kanyang pangalan, nang hindi kinakailangang baguhin ang code. magpatuloy na tayo.

Hakbang 4: Pag-unawa sa Code, Bahagi 2

Linya 16: sub waitfor ay ang aming unang subroutine. Ang isang subroutine ay maaaring tawagan mula sa ibang lugar sa code, isasagawa ang code sa loob ng katawan ng subroutine, at ibabalik ang kontrol ng programa sa calling code. Ang waitfor ay nagtatakda ng aming shell para sa amin. Sa pamamagitan ng paggawa nito sa isang loop na may isang "pagtulog" sa loob ng loop, pinapayagan namin ang pag-aktibo ng shell upang makumpleto bago ang kontrol na maibalik, na kung saan ay isang napakahusay na bagay. Ang linya 26: sub matrix ay ang aming pangalawang subroutine, at tumatagal ng tinatawag na "mga elemento" ang parameter. Ginagawa ng subroutine na ito ang pag-print ng mga cool na numero na lilitaw na "mahulog", tulad ng sa pelikula. Kumuha ako ng ilang mga bagay dito. Inaasahan ko sa pamamagitan ng pagpapaliwanag sa kanila na mauunawaan mo kung saan ako nanggaling at magagawa ito nang mas mahusay kaysa sa I. Una, ipinapalagay ko na nais mo lamang ang 5 mga haligi ng mga numero, at ang "mga elemento" ay nahahati sa bilang ng mga haligi (5). Madali itong ginagarantiyahan dahil sa kalaunan ay idineklara ko ang mga parameter na naipasa sa "matrix" na 200 at 100 (tinatawag itong dalawang beses). Ipinapalagay ko rin na nais mo ang lahat ng 5 mga haligi na na-on bilang default. Sa palagay ko mukhang OK ito, ngunit maaari mong baguhin ang ilan sa mga ito sa MALI kung nais mo ang unang linya ng mga numero na tila kasing random tulad ng natitirang mga hilera. OK, kaya mayroon kaming 5 mga haligi, mayroon kaming 200 / 5 = 40 mga linya ng mga numero upang ipakita (mga linyaToWrite), at lahat ng aming mga haligi ay naka-on bilang default. Linya 41: pumapasok kami sa dalawang "para sa" mga loop, ang una kung saan (Loop A) ang umiikot sa aming mga linyaToWrite at ang pangalawa (Loop B) na ikot sa pamamagitan ng bilang ng mga haligi. Sa Loop B, Pumili kami sa halaga ng loop variable loopB, at depende sa halaga na ito ay sinusuri namin ang isang pahayag na If-Else. Kung ang pinag-uusapan na haligi ay Pinagana ("TUNAY", o "naka-on"), i-print namin, sa pamamagitan ng "wshshell. SendKeys", ang halaga ng Int (Round (rnd ())), na sinusundan ng isang tab. Kung hindi man, mai-print lamang namin ang isang tab, tulad ng lilitaw na walang laman ang haligi. Kaya't ano ang halaga ng Int (Round (rnd ()))? Ang rnd () ay nagbabalik ng isang random na lumulutang na numero ng point sa pagitan ng 0.0 at 1.0, Dadalhin ng Round () ang halagang iyon at iikot ito sa pinakamalapit na halaga ng Integer, at ang Int () ay naglalagay ng resulta sa isang Integer. Ang huling hakbang na ito ay maaaring isaalang-alang na labis na pagpatay, dahil ang Round () na tawag ay dapat bigyan tayo ng 0 o 1. Ginawa ko ito dahil lamang sa ugali. Sa ilang mga punto ay dapat may nagsabi sa akin na ito ay mas ligtas, at tila hindi ko pa ito nakakalimutan. Sa Bahagi 3…

Hakbang 5: Pag-unawa sa Code, Bahagi 3

Pagpapatuloy sa sub Matrix, narito ang mga susunod na ilang linya ng VB … 'Ang mga flip-flop na haligi na ito,' kung kung ang isang haligi ay NAKA-OFF, bubukas SA 30 porsyento ng oras, 'at kung ang isang haligi ay ON, magiging naka-OFF na 30 porsyento ng oras. turnOffMax = 0.30 turnOnMax = 0.30Ng pag-click sa bawat haligi na 30% ng oras na ginagawang "mahulog" ang mga haligi ng bilang sa isang random na paraan na katulad ng kung paano nila ginagawa sa pelikula. Hindi eksakto, ngunit malapit. 'Column 1 flip-flop flipMe = rnd () Kung ((col1 = turnOn) at (flipMe <turnOffMax)) Pagkatapos col1 = turnOff Else If ((col1 = turnOff) at (flipMe <turnOnMax)) Pagkatapos col1 = turnOn End IfThe sa itaas block humahawak kung paano namin matukoy kung magpapakita kami ng isang numero sa ibinigay na haligi sa panahon ng susunod na pag-ulit, para sa susunod na hilera ng mga numero. Nabasa ng code na "kung ang haligi ay nakabukas, at ang random na numero na tinatawag na flipMe ay mas mababa sa 30%, patayin ang haligi. Kung hindi man, kung ang haligi ay naka-off at ang flipMe ay mas mababa sa 30%, i-on ang haligi." hanggang sub Matrix. Bukas sa sub key…

Hakbang 6: Sub Key ()

Ang pangunahing pamamaraan ay nasa ibaba. Susi ng susi (msg) 'gawin ang mga printout ng "mga matrix" na mensahe, at burahin ang mga iyon.sulog 250nextwscript.s Sleep 3000for posisyon = 1 hanggang haba wshshell. SendKeys "{BACKSPACE}" wscript.s Sleep 75nextend subAng pamamaraang ito ay naglilimbag ng isang string na "msg". I-print nito ang anumang naipasa mo. Ang pamamaraang ito ay tinatawag sa ibang pagkakataon sa code. Ang unang FOR loop ay nai-print ang bawat character sa string, isa-isa, at humihinto para sa 250 milliseconds sa pagitan ng bawat character. Pagkatapos ay natutulog kami para sa 3000 millis (3 segundo) at sumulat ng backspace para sa bawat character na dati naming na-print, natutulog sa oras na ito nang kaunti nang kaunti. Iyon lang ang mayroon dito. Nasa pangunahing bahagi ng programa, kung saan magkakasama ang lahat.

Hakbang 7: Pangunahin

Ang pangunahing pagpapatupad ng programa ay tumatawag sa waitFor at matrix (na sakop na namin) upang maitakda ang lahat at isulat ang 200 binary digit, kumalat sa 5 mga haligi. Ang pangalan ng kasalukuyang gumagamit ng system ay pagkatapos ay grab at manipulahin upang mai-print bilang isang bahagi ng pagkakasunud-sunod ng "gisingin". Pagkatapos ay nagpasok kami ng isang PARA sa loop, na alam naming mag-iisa lamang kami sa loob ng 4 na beses dahil sa "1 Sa 4 "pagpigil. Pinili namin pagkatapos ang aming variable ng loop (loopA), na tumutugma sa unang pahayag ng KASO sa unang pagkakataon, ang pangalawang pahayag ng CASE sa pangalawang pagkakataon sa pamamagitan ng loop, atbp. Ang bawat pag-ulit ng loop, myString ay nakatakda sa tamang representasyon ng string ng ang verbiage na nais naming i-print, at ang pangunahing subroutine ay tinatawag na aktwal na gawin ang pag-print. Malinaw na maraming iba pang mga paraan upang idisenyo ang loop na ito, at iiwan ko iyon bilang isang ehersisyo sa mambabasa. Kapag lumabas kami sa FOR loop, muli naming tinawagan ang matrix subroutine upang mag-print ng maraming mga numero. Tulad ng sinabi ng komento sa code, maaari mong ilagay ang pangwakas na tawag sa matrix () na ito sa isang loop kung nais mo, o maaari mo lamang itong tawagan sa isang mas malaking numero, atbp. Sa wakas, ang aming tawag na huminto () mag-abort ng programa pagpapatupad (laging mahusay na kasanayan: P). Inaasahan kong masisiyahan ang bawat isa na kunin ang aking halimbawa at gawing mas mahusay ito! Kung ang Instructable na ito ay nakapagbigay ng iyong pag-usisa sa VB, maaaring magbigay ang Google ng isang toneladang magagandang mapagkukunan upang matuto nang higit pa tungkol dito kaysa sa masasabi ko sa iyo. Maligayang pag-coding! martin

Inirerekumendang: