Sisällysluettelo:

Matrix Code - Visual Basic: 7 vaihetta
Matrix Code - Visual Basic: 7 vaihetta

Video: Matrix Code - Visual Basic: 7 vaihetta

Video: Matrix Code - Visual Basic: 7 vaihetta
Video: How to Fix Software Installation Error in Windows 10,8 1,7 (Fail, Fatal, Can’t Install) 2024, Heinäkuu
Anonim
Matriisikoodi - Visual Basic
Matriisikoodi - Visual Basic

Uusi ja parannettu Visual Basic -koodi näyttää "Matrix" -maisen vaikutelman vierittämällä One- ja Zero's-toimintoja. Sitten se leikkaa Matrix "Wake Up Neo" -sekvenssin ja jatkaa sitten numeroiden vierittämistä. Ymmärrän, että tämä ei ole aivan miten sarja kulkee elokuvan sisällä, mutta ihmiset pyysivät tätä toimintoa, joten lisäsin sen. Luulen, että tapa, jolla satunnaistan One- ja Zero -sarakkeiden näytön, on koodin siistein osa. Keskustelen siitä, mitä tein myöhemmin. Tämä Instructable on vastaus Brennn10: n "Welcome to the Matrix in Command Prompt" Instructable -ohjelmaan. Tämän Instructable -koodin koodi perustui alun perin DarkJokerin yllä olevan Instructable -kommentin kommenttiin lähetettyyn koodiin. julkaisi tämän ratkaisun.

Vaihe 1: Nappaa koodi

Olen liittänyt koodini alla. Tallenna molemmat tiedostot (startMatrix.itsabat ja matrix.itsavbs) samaan kansioon koneellasi ja poista tiedostonimen "itsa" -osa, eli nimeä tiedostot uudelleen nimiksi startMatrix.bat ja matrix.vbs. Bat -tiedostot ja vbs -tiedostot ovat suoritettavia, joten en voi ladata niitä näiden laajennusten kanssa täällä. Siksi sinun on tallennettava ja nimettävä ne paikallisesti.

Vaihe 2: Koodin suorittaminen

Jos haluat käyttää koodiani, noudata alla olevia ohjeita. Jos et halua suorittaa koneellasi jotain, josta et tiedä mitään, olet fiksu. Sinun pitäisi siirtyä seuraavaan vaiheeseen, jossa käyn läpi koodin ja näytän sinulle, etten ole tehnyt mitään pahaa. Kuitenkin, jos haluat vain päästä siihen (tai olet jonkun toisen koneella etkä hoito), voit aloittaa koodin seuraavasti: Vaihe 1: kaksoisnapsauta "startMatrix.bat". Siinä kaikki. Siirry seuraavaan vaiheeseen lukemaan juuri näkemäsi viileys.

Vaihe 3: Koodin ymmärtäminen, osa 1

Katsotaanpa koodia alusta alkaen. Toivottavasti voit oppia tarpeeksi VB: stä koodistani, että lopetat ja opit koodimaan VB: ssä paremmin kuin minä:) Joten ensinnäkin meillä on kaksi tiedostoa: bat -tiedosto ja vbs -tiedosto. Jos muokkaat bat -tiedostoa, huomaat, että se suorittaa vbs -tiedoston ikkunan, tekstin värin ja ikkunan nimen määrittämisen jälkeen. Siirrytään vbs -tiedoston mielenkiintoisempiin asioihin. FYI, aion vain koskea täällä mielenkiintoisimpia koodirivejä.. Nämä ovat kommentteja, EI TOTEUTU. Matrix.vbs: n ensimmäiset rivit sanovat "Aseta virheilmoitukset tasolle", mutta samalla "Älä anna tekemieni virheiden olla kohtalokkaita." Rivi 5: Tässä hämärässä lausunnossamme on kaikki muuttujat, joita käytämme koko pienen ohjelman aikana. Meidän ei tarvitse ilmoittaa näiden muuttujien tyyppejä tai niiden alkuarvoja, kuten joissakin muissa kielissä. VB on "voimakas" näin. Line 12: objSysInfo antaa meille mahdollisuuden kerätä tietoja järjestelmästä, jossa käytämme. Luomme objektin täällä, ja rivillä 13 objSysInfo. UserName palauttaa tällä hetkellä kirjautuneen käyttäjän nimen, joka suorittaa tämän koodin. Tätä käytetään myöhemmin "Neon" sijasta, jotta skriptimme voi sanoa "Herää, Martin…", jos se suoritetaan koneellani, tai "Herää, Brennn10 …", jos se suoritetaan Brennn10: n koneella ja jos Tämä oli hänen käyttäjätunnuksensa. Käyttämällä järjestelmän käyttäjätunnusta voit heittää sen kaverisi lukitsemattomaan koneeseen ja se vetää hänen nimensä automaattisesti ilman koodin muuttamista.

Vaihe 4: Koodin ymmärtäminen, osa 2

Rivi 16: alijäämä on ensimmäinen aliohjelmamme. Aliohjelma voidaan kutsua eri paikasta koodissa, suorittaa koodin aliohjelman rungossa ja palauttaa sitten ohjelman ohjauksen kutsuvaan koodiin. waitfor perustaa kuoren meille. Kun teemme tämän silmukassa, jossa silmukka on "lepotilassa", sallimme kuoren aktivoinnin loppuun ennen kuin ohjain palautetaan, mikä on erittäin hyvä asia. Rivi 26: alimatriisi on toinen aliohjelmamme ja kestää parametri nimeltä "elementit". Tämä aliohjelma tulostaa hienoja numeroita, jotka näyttävät "putoavan", kuten elokuvassa. Olen pitänyt muutamia asioita itsestäänselvyytenä täällä. Toivottavasti selittämällä heille ymmärrät, mistä tulen, ja pystyt siihen paremmin kuin minä. Ensinnäkin oletan, että haluat vain viisi saraketta numeroita ja että "elementit" jaetaan sarakkeiden lukumäärällä (5). Tämä oli helppo taata, koska myöhemmin julistan "matriisille" välitetyt parametrit 200 ja 100 (sitä kutsutaan kahdesti). Oletan myös, että haluat, että kaikki 5 saraketta otetaan käyttöön oletusarvoisesti. Mielestäni se näyttää hyvältä, mutta voit muuttaa muutamia näistä arvoista EPÄTOSI, jos haluat ensimmäisen numerorivin näyttävän yhtä sattumanvaraiselta kuin muutkin rivit. OK, joten meillä on 5 saraketta, 5 = 40 näytettävää numeroriviä (linesToWrite), ja kaikki sarakkeemme ovat oletusarvoisesti käytössä. Rivi 41: me teemme kaksi "for" -silmukkaa, joista ensimmäinen (Loop A) kiertää rivimmeToWrite ja toinen (Loop B), joka selaa sarakkeiden lukumäärää. Silmukassa B valitaan silmukan muuttujan loopB arvo ja sen arvon perusteella arvioimme If-Else-käskyn. Jos kyseinen sarake on käytössä ("TOSI" tai "päällä"), tulostamme "wshshell. SendKeys" -toiminnon avulla arvon Int (kierros (rnd ())) ja sen jälkeen välilehden. Muussa tapauksessa tulostamme vain välilehden, jolloin sarake näyttää tyhjältä. Niin mikä on Int (Round (rnd ()))? rnd () palauttaa satunnaisen liukulukuluvun välillä 0,0 ja 1,0, kierros () ottaa arvon ja pyöristää sen lähimpään kokonaislukuarvoon ja Int () siirtää tuloksen kokonaislukuun. Tätä viimeistä vaihetta voidaan pitää yliarvostettuna, koska Round () -kutsun pitäisi antaa meille 0 tai 1. Tein sen vain tottumuksen vuoksi. Jossain vaiheessa joku on varmasti sanonut minulle, että se oli turvallisempaa, enkä ilmeisesti ole vielä unohtanut sitä.

Vaihe 5: Koodin ymmärtäminen, osa 3

Jatketaan alimatriisia, tässä ovat seuraavat VB: n rivit…”Tämä flip-flops-sarake”, joten jos sarake on POIS PÄÄLTÄ, se kytketään päälle 30 prosenttia ajasta, ja jos sarake on PÄÄLLÄ, se pois päältä 30 prosenttia ajasta. turnOffMax = 0,30 turnOnMax = 0,30Kunkin sarakkeen vaihtaminen 30% ajasta saa numerosarakkeet "putoamaan" satunnaisesti samalla tavalla kuin elokuvassa. Ei tarkka, mutta lähellä. 'Sarake 1 flip-flop flipMe = rnd () If ((col1 = turnOn) ja (flipMe <turnOffMax)) Sitten col1 = turnOff Else If ((col1 = TurnOff) ja (flipMe <turnOnMax)) Sitten col1 = turnOn End IfThe yllä oleva lohko käsittelee sitä, miten määritämme, näytetäänkö numero seuraavassa sarakkeessa seuraavan iteraation aikana seuraavassa numerorivissä. Koodi lukee "jos sarake on päällä ja satunnaisluku nimeltä flipMe on alle 30%, sammuta sarake. Muussa tapauksessa, jos sarake on pois päältä ja flipMe on alle 30%, kytke sarake päälle." ylös Matriisi. Alinäppäimelle…

Vaihe 6: Aliavain ()

Avaimenetelmä on alla.sub -avain (msg) 'tulostaa "matriisi" -viestit ja poistaa ne..sleep 250nextwscript.sleep 3000for position = 1 to length wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subTämä menetelmä tulostaa merkkijonon "msg". Se tulostaa kaiken, minkä ohitat. Tätä menetelmää kutsutaan myöhemmin koodissa. Ensimmäinen FOR -silmukka tulostaa jokaisen merkkijonon merkin yksi kerrallaan ja pysähtyy 250 millisekunnin ajaksi kunkin merkin väliin. Sitten nukumme 3000 milliä (3 sekuntia) ja kirjoitamme askelpalautinta jokaiselle aiemmin tulostamallemme merkille, nukkumalla tällä kertaa hieman vähemmän. Ohjelman pääkappaleeseen, jossa kaikki yhdistyy.

Vaihe 7: Pääasiallinen

Ohjelman pääsuoritus kutsuu waitFor ja matrix (jotka olemme jo käsitelleet) asettaakseen kaiken ja kirjoittaakseen 200 binäärilukua 5 sarakkeelle. Tämän jälkeen järjestelmän nykyisen käyttäjän nimi napataan ja sitä käsitellään tulostettavaksi osana "herätys" -sekvenssiä. Kirjoitamme sitten FOR -silmukan, jonka tiedämme toistavan vain yli 4 kertaa, koska "1" 4 "rajoitus. Valitsemme sitten silmukkamuuttujamme (loopA), joka vastaa ensimmäistä CASE -käskyä ensimmäistä kertaa, toista CASE -lauseketta toisen kerran silmukan kautta jne. Jne. Jokainen silmukan iteraatio, myString on asetettu oikealle merkkijonolle sanasto, jonka haluamme tulostaa, ja avainaliohjelma kutsutaan tosiasiallisesti tulostamaan. On tietysti monia muita tapoja suunnitella tämä silmukka, ja jätän sen harjoitukseksi lukijalle. Kuten koodin kommentti sanoo, voit laittaa tämän viimeisen puhelun matriisiin () silmukkaan, jos haluat, tai voit vain soittaa sille suuremmalla numerolla jne. Lopuksi kutsumme lopettaa () keskeyttää ohjelman toivottavasti kaikilla on hauskaa ottaa esimerkki ja tehdä siitä parempi! Jos tämä Instructable on herättänyt uteliaisuutesi VB: n kanssa, Google voi tarjota paljon hyviä resursseja oppiakseen siitä enemmän kuin voin kertoa sinulle. Hyvää koodausta! martin

Suositeltava: