Sisukord:

Maatrikskood - Visual Basic: 7 sammu
Maatrikskood - Visual Basic: 7 sammu

Video: Maatrikskood - Visual Basic: 7 sammu

Video: Maatrikskood - Visual Basic: 7 sammu
Video: Можно ли пить соду, и к чему это приведёт 2024, Juuli
Anonim
Maatrikskood - Visual Basic
Maatrikskood - Visual Basic

Uus ja täiustatud Visual Basic kood kuvab Matrixi sarnase efekti, kerides One'i ja Zero oma. Seejärel lõikab see maatriksi "Wake Up Neo" ja jätkab numbrite kerimist. Ma saan aru, et see ei ole täpselt see, kuidas jada filmis käib, kuid inimesed küsisid seda funktsiooni, seega lisasin selle. Ma arvan, et One'i ja Zero veergude kuvamise juhuslik valik on koodi kõige kenam osa. Ma arutan täpselt seda, mida ma hiljem tegin. See Instructable on vastuseks Brennn10 käsule "Welcome to the Matrix in Command Prompt" Instructable. Selle juhendi aluseks olev kood põhines esialgu DarkJokeri kommentaaris ülaltoodud juhiste kohta postitatud koodil. Ma olen tahtlikult oma koodi selgitusega üsna selgesõnaline, kuna olen pärast esimest korda saanud palju selgitamistaotlusi postitas selle lahenduse.

Samm: haarake minu kood

Lisasin oma koodi allpool. Salvestage mõlemad failid (startMatrix.itsabat ja matrix.itsavbs) oma masina samasse kausta ja eemaldage failinime osa "itsa", st nimetage failid ümber nimedeks startMatrix.bat ja matrix.vbs. Bat -failid ja vbs -failid on käivitatavad ning seetõttu ei saa ma neid nende laiendustega siia üles laadida. Seetõttu peate need kohapeal salvestama ja ümber nimetama.

2. samm: koodi täitmine

Kui soovite minu koodi käivitada, järgige allolevaid juhiseid. Kui te ei soovi oma arvutis midagi teostada, millest te midagi ei tea, olete tark. Peaksite minema järgmisele sammule, kus ma koodi läbi vaatan ja näitan teile, et ma pole midagi kurja teinud. Kui soovite lihtsalt selleni jõuda (või olete kellegi teise masinas ja ei hooldus), saate koodi käivitada järgmiselt: 1. samm: topeltklõpsake nuppu "startMatrix.bat". See ongi kõik. Nüüd minge järgmise sammu juurde, et lugeda äsja nähtud jahedusest.

3. samm: koodeksi mõistmine, 1. osa

Vaatame koodi, alustades algusest. Loodetavasti saate minu koodist VB kohta piisavalt õppida, et te läheksite ja õpiksite VB -s kodeerima paremini kui mina:) Nii et kõigepealt on meil 2 faili: bat -fail ja vbs -fail. Kui redigeerite nahkhiirefaili, märkate, et see käivitab vbs -faili pärast akna, teksti värvi ja akna pealkirja seadistamist. Liigume edasi vbs -faili huvitavamate asjade juurde. FYI, ma puudutan siin ainult kõige huvitavamaid koodiridu. Pöörake erilist tähelepanu ka ridadele, mis algavad tähega (linnuke või üks hinnapakkumine). Need on kommentaarid ja neid EI TÄITA. Matrix.vbs esimesed paar rida ütlevad "Määra minu veateated selgesõnalisele tasemele", kuid samal ajal "Ära lase minu tehtud vigadel saatuslikuks saada." Tõeline arutelu pole vajalik. 5. rida: meie hämar avaldus seab kõik muutujad, mida me oma väikese programmi eluea jooksul kasutame. Me ei pea nende muutujate tüüpe ega nende algväärtusi deklareerima, nagu mõnedes teistes keeltes. VB on selline "võimas". Rida 12: objSysInfo võimaldab meil koguda teavet süsteemi kohta, millel me töötame. Loome objekti siin ja real 13 objSysInfo. UserName tagastab selle koodi täitva parajasti sisse logitud kasutaja nime. Seda kasutatakse hiljem sõna „Neo” asemel, nii et meie skript võib öelda „Ärka üles, Martin…”, kui see töötab minu masinal, või „Ärka üles, Brennn10…”, kui see töötab Brennn10 masinal ja kui see oli tema kasutajanimi. Süsteemi kasutajanime kasutamine võimaldab teil selle oma sõbra lukustamata masinasse visata ja see tõmbab tema nime automaatselt ilma koodi muutmata. Liigume edasi.

4. samm: koodeksi mõistmine, 2. osa

16. rida: alam ootamine on meie esimene alamprogramm. Alamprogrammi saab kutsuda koodi teisest kohast, see käivitab koodi alamprogrammi kehas ja tagastab seejärel programmi juhtimise koodile. waitfor seab meie kesta meie jaoks üles. Tehes seda tsüklis, mille tsükkel on "unerežiimis", lubame kesta aktiveerimise enne kontrolli tagastamist lõpule viia, mis on väga hea. Rida 26: alammaatriks on meie teine alamprogramm ja võtab parameetrit nimega "elemendid". See alamprogramm prindib jahedad numbrid, mis näivad "langevat", nagu filmis. Olen siin mõnda asja iseenesestmõistetavaks pidanud. Loodetavasti saate neid selgitades aru, kust ma tulen, ja saate seda paremini teha kui mina. Esiteks eeldan, et soovite ainult 5 numbrite veergu ja et "elemendid" jagub veergude arvuga (5). Seda oli lihtne garanteerida, sest hiljem kuulutan "maatriksile" edastatud parameetriteks 200 ja 100 (seda nimetatakse kaks korda). Eeldan ka, et soovite, et kõik 5 veergu oleks vaikimisi sisse lülitatud. Ma arvan, et see tundub OK, kuid kui soovite, et esimene numbririda tunduks sama juhuslik, nagu ülejäänud read, näeksite mõned neist väärtuseks VÄÄR. Kui teil on 5 veergu, siis 200 5 = 40 kuvatavat numbririda (linesToWrite) ja kõik meie veerud on vaikimisi sisse lülitatud. Rida 41: sisestame kaks "for" silmust, millest esimene (Loop A) liigub läbi meie readToWrite ja teine (Loop B), mis liigub läbi veergude arvu. Loopis B valime silmuse muutuja loopB väärtuse ja sõltuvalt selle väärtusest hindame If-Else lauset. Kui kõnealune veerg on lubatud ("TRUE" või "sisse lülitatud"), prindime "wshshell. SendKeys" kaudu väärtuse Int (Round (rnd ())), millele järgneb sakk. Vastasel juhul prindime ainult vahelehe, nii et veerg kuvatakse tühjana. Mis on Int (Round (rnd ())) väärtus? rnd () tagastab juhusliku ujukomaarvu vahemikus 0,0 kuni 1,0, Round () võtab selle väärtuse ja ümardab selle lähima täisarvuni ning Int () teisendab tulemuse täisarvuks. Seda viimast sammu võib pidada liigseks, sest Round () kõne peaks andma meile 0 või 1. Ma tegin seda lihtsalt harjumuse tõttu. Mingil hetkel pidi keegi mulle ütlema, et see on turvalisem, ja ma pole seda ilmselt veel unustanud. Kolmanda osa kohta…

5. samm: koodeksi mõistmine, 3. osa

Jätkates alammaatriksit, siin on VB järgmised paar rida … "See flip-flops veerg", nii et kui veerg on välja lülitatud, lülitatakse see 30 protsenti ajast sisse ja kui veerg on sisse lülitatud, siis lülitati 30 protsenti ajast välja. turnOffMax = 0,30 turnOnMax = 0,30Iga veeru ümberlülitamine 30% ajast paneb numbrite veerud "langema" juhuslikult sarnaselt filmiga. Mitte täpne, kuid lähedal. '1. veerg flip-flop flipMe = rnd () If ((col1 = turnOn) ja (flipMe <turnOffMax)) Siis col1 = turnOff Else If ((col1 = turnOff) ja (flipMe <turnOnMax)) Seejärel col1 = keeras ülaltoodud plokk käsitleb seda, kuidas me otsustame, kas järgmise iteratsiooni ajal järgmise numbrirea jaoks kuvatakse antud veerus number. Kood ütleb: "kui veerg on sisse lülitatud ja juhuslik arv flipMe on väiksem kui 30%, lülitage veerg välja. Vastasel juhul, kui veerg on välja lülitatud ja flipMe on alla 30%, lülitage veerg sisse." üles alammaatriks. Alamvõti sisse…

6. toiming: alamvõti ()

Võtme meetod on allpool. Sub klahv (msg) 'prindib välja maatriksi' sõnumid ja kustutab need.sleep 250nextwscript.sleep 3000for position = 1 kuni pikkus wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subThis meetod prindib välja stringi "msg". See trükib kõik, mis te läbite. Seda meetodit nimetatakse koodis hiljem. Esimene FOR -tsükkel prindib stringi iga märgi ükshaaval välja ja peatub iga tähemärgi vahel 250 millisekundi jooksul. Seejärel magame 3000 millisekundit (3 sekundit) ja kirjutame iga varem trükitud tähemärgi eest tagasilöögi, magame seekord veidi vähem. See on kõik, mis seal on. Edasi programmi põhiosasse, kus kõik saab kokku.

7. samm: peamine

Programmi põhitegevus kutsub waitFor ja maatriksit (mida oleme juba käsitlenud), et kõik seadistada ja välja kirjutada 200 binaarset numbrit, mis on jaotatud viiele veerule. Seejärel haaratakse praeguse süsteemi kasutaja nimi ja manipuleeritakse sellega, et see prinditaks välja osana äratusjärjestusest. Seejärel sisestame FOR -ahela, mida teame, et kordame ainult üle 4 korra, kuna "1 4 "piirangule. Seejärel valime oma silmusmuutuja (loopA), mis vastab esimese CASE -lausega esimest korda, teise CASE -lausega teist korda läbi tsükli jne. Iga silmuse iteratsiooni korral on myString seatud õigele stringi esitusele sõnakõlks, mida me soovime printida, ja võtmealamprogrammi kutsutakse tegelikult printima. Selle silmuse kujundamiseks on ilmselgelt palju muid viise ja jätan selle lugeja ülesandeks. Kui me FOR -tsüklist väljume, kutsume taas maatriksi alamprogrammi, et printida rohkem numbreid. Nagu koodikommentaar ütleb, võite selle viimase kõne maatriksile () panna, kui soovite, või võite sellele helistada suurema numbriga jne. Lõpuks lõpetab meie üleskutse lõpetada () programm täitmine (alati hea tava: P). Loodan, et kõigil on lõbus minu eeskuju võtta ja seda paremaks muuta! Kui see Instructable on teie uudishimu VB vastu äratanud, võib Google pakkuda palju häid ressursse, et selle kohta rohkem teada saada, kui ma teile öelda saan. Head kodeerimist! martin

Soovitan: