Turinys:

Matricos kodas - „Visual Basic“: 7 žingsniai
Matricos kodas - „Visual Basic“: 7 žingsniai

Video: Matricos kodas - „Visual Basic“: 7 žingsniai

Video: Matricos kodas - „Visual Basic“: 7 žingsniai
Video: Section 6 2024, Lapkritis
Anonim
Matricos kodas - „Visual Basic“
Matricos kodas - „Visual Basic“

Naujas ir patobulintas „Visual Basic“kodas parodys „Matricos“efektą, slinkdamas „One“ir „Zero“. Tada ji nukrypsta į „Matrix“„Wake Up Neo“seką ir toliau slenka skaičius. Suprantu, kad seka ne visai atitinka filmą, bet buvo žmonių, kurie prašė šios funkcijos, todėl pridėjau. Manau, tai, kaip atsitiktinai pasirenku „One“ir „Zero“stulpelių rodymą, yra pati tvarkingiausia kodo dalis. Aš tiksliai aptariu tai, ką padariau vėliau. Ši „Instructable“yra atsakas į Brennn10 „Welcome to the Matrix in Command Prompt“Instructable. Šis „Instructable“kodas iš pradžių buvo pagrįstas kodu, paskelbtu „DarkJoker“komentare apie aukščiau pateiktą „Instructable“. Aš tyčia gana aiškiai nurodžiau kodo paaiškinimą, nes nuo tada, kai pirmą kartą gavau daug prašymų paaiškinti paskelbė šį sprendimą.

1 žingsnis: paimkite mano kodą

Žemiau pridėjau savo kodą. Išsaugokite abu failus (startMatrix.itsabat ir matrix.itsavbs) tame pačiame savo kompiuterio aplanke ir pašalinkite failo pavadinimo „itsa“dalį, t. Y. Pervardykite failus į startMatrix.bat ir matrix.vbs. „Bat“failai ir „vbs“failai yra vykdytini, todėl negaliu jų įkelti čia su šiais plėtiniais. Štai kodėl turite juos išsaugoti ir pervardyti vietoje.

2 žingsnis: kodo vykdymas

Jei norite paleisti mano kodą, vadovaukitės toliau pateiktomis instrukcijomis. Jei nenorite savo kompiuteryje vykdyti to, apie ką nieko nežinote, esate protingas. Turėtumėte pereiti prie kito žingsnio, kur aš einu per kodą ir parodau, kad nieko nedariau. priežiūra), štai kaip pradėti kodą: 1 veiksmas: dukart spustelėkite „startMatrix.bat“. Štai ir viskas. Dabar pereikite prie kito žingsnio ir perskaitykite apie ką tik matytą vėsą.

3 žingsnis: kodo supratimas, 1 dalis

Pažvelkime į kodą, pradedant nuo pradžių. Tikimės, kad iš mano kodo galite pakankamai sužinoti apie VB, kad jūs išeitumėte ir išmoktumėte koduoti VB geriau nei aš:) Taigi pirmiausia turime du failus: bat failą ir vbs failą. Jei redaguosite šikšnosparnių failą, pastebėsite, kad jis vykdo vbs failą, nustačius langą, teksto spalvą ir lango pavadinimą. Pereikime prie įdomesnių dalykų, esančių vbs faile. FYI, čia paliesiu tik įdomiausias kodo eilutes. Taip pat atkreipkite ypatingą dėmesį į eilutes, prasidedančias „(pažymėkite arba vieną citatą). Tai yra komentarai, ir jie nebus vykdomi. Pirmosios kelios matrix.vbs eilutės sako: „Nustatykite mano klaidų pranešimus į aiškų lygį“, bet tuo pačiu metu „Neleiskite, kad mano padarytos klaidos būtų mirtinos“. Nereikia jokių tikrų diskusijų. 5 eilutė: mūsų silpnas teiginys čia nustato visus kintamuosius, kuriuos naudosime per visą mūsų mažosios programos gyvavimo laikotarpį. Mums nereikia deklaruoti šių kintamųjų tipų ar jų pradinių verčių, kaip tai galėtume daryti kai kuriomis kitomis kalbomis. VB yra toks „galingas“. 12 eilutė: „objSysInfo“leidžia surinkti tam tikrą informaciją apie sistemą, kurioje veikiame. Mes kuriame objektą čia, o 13 eilutėje objSysInfo. UserName grąžina šiuo metu prisijungusio vartotojo, vykdančio šį kodą, vardą. Tai vėliau bus naudojama vietoj „Neo“, kad mūsų scenarijus galėtų pasakyti „Wake up, Martin …“, jei jis paleistas mano kompiuteryje, arba „Wake up, Brennn10…“, jei jis paleistas „Brennn10“kompiuteryje ir tai buvo jo vartotojo vardas. Naudodami sistemos vartotojo vardą galite jį išmesti į savo draugo atrakintą mašiną ir jis automatiškai ištrauks jo vardą, nekeisdamas kodo. Eikime toliau.

4 žingsnis: kodo supratimas, 2 dalis

16 eilutė: sublaukimas yra pirmoji mūsų paprograma. Paprogramė gali būti iškviesta iš kitos kodo vietos, vykdys kodą paprogramės tekste ir grąžins programos valdymą į skambinantį kodą. waitfor nustato mums savo apvalkalą. Darydami tai cikle su „miegu“cikle, mes leidžiame suaktyvinti apvalkalą prieš grąžinant kontrolę, o tai yra labai geras dalykas. 26 eilutė: antroji matrica yra antroji mūsų paprograma ir užtrunka parametras, vadinamas „elementais“. Ši paprograma spausdina šaunius skaičius, kurie, atrodo, „krenta“, kaip filme. Čia aš priėmiau keletą dalykų kaip savaime suprantamą. Tikimės, kad paaiškindami juos suprasite, iš kur aš kilęs, ir tai padarysite geriau nei aš. Pirmiausia, manau, kad norite tik 5 skaičių stulpelių ir kad „elementai“dalijasi iš stulpelių skaičiaus (5). Tai buvo lengva garantuoti, nes vėliau aš paskelbiu, kad parametrai, perduoti „matricai“, yra 200 ir 100 (tai vadinama du kartus). Taip pat manau, kad norite, kad visi 5 stulpeliai būtų įjungti pagal numatytuosius nustatymus. Manau, kad tai atrodo gerai, tačiau kai kuriuos iš jų galite pakeisti į FALSE, jei norite, kad pirmoji skaičių eilutė atrodytų tokia atsitiktinė, kaip ir visos kitos eilutės. Gerai, taigi turime 5 stulpelius, turime 200 / 5 = 40 rodomų skaičių eilučių (linesToWrite), o visi mūsų stulpeliai yra įjungti pagal numatytuosius nustatymus.41. eilutė: mes įvedame dvi „už“kilpas, iš kurių pirmoji (A kilpa) pereina per mūsų eilutes „ToWrite“ir antroji (Kilpa B), kuri perkelia stulpelių skaičių. „B“cikle pasirenkame kilpos kintamojo „loopB“vertę ir, priklausomai nuo jos vertės, įvertiname „If-Else“teiginį. Jei aptariamas stulpelis yra įjungtas („TRUE“arba „įjungtas“), mes atspausdinsime „wshshell. SendKeys“reikšmę Int (Round (rnd ())), po to - skirtuką. Priešingu atveju atspausdinsime tik skirtuką, kad stulpelis būtų tuščias. Taigi kokia yra Int (Round (rnd ())) vertė? „rnd ()“grąžina atsitiktinį slankiojo kablelio skaičių nuo 0,0 iki 1,0, „Round“() paims šią vertę ir suapvalins iki artimiausio sveikojo skaičiaus, o „Int“() perves rezultatą į sveikąjį skaičių. Šis paskutinis žingsnis gali būti laikomas pernelyg dideliu, nes raundas () turėtų duoti mums 0 arba 1. Aš tai padariau tik dėl įpročio. Tam tikru momentu kažkas man turėjo pasakyti, kad tai buvo saugiau, ir aš, matyt, to dar nepamiršau. Dėl 3 dalies…

5 žingsnis: kodo supratimas, 3 dalis

Tęsiant antrąją matricą, čia pateikiamos kelios VB eilutės… „Šios stulpeliai yra apversti“, taigi, jei stulpelis yra IŠJUNGTAS, jis bus įjungtas 30 procentų laiko, o jei stulpelis įjungtas, jis bus išjungė 30 procentų laiko. turnOffMax = 0,30 turnOnMax = 0,30Pasijungus kiekvieną stulpelį 30% atvejų skaičių stulpeliai „nukrenta“atsitiktine tvarka, panašiai kaip jie daromi filme. Ne tiksliai, bet arti. '1 stulpelis flip-flop flipMe = rnd () If ((col1 = TurnOn) ir (flipMe <turnOffMax)) Tada col1 = TurnOff Else If ((col1 = turnOff) ir (flipMe <turnOnMax)) Tada col1 = pasisuko aukščiau pateiktas blokas nurodo, kaip mes nustatome, ar kitos iteracijos metu kitoje skaičių eilutėje parodysime skaičių atitinkamame stulpelyje. Kodas yra toks: „jei stulpelis įjungtas, o atsitiktinis skaičius, vadinamas„ flipMe “, yra mažesnis nei 30%, išjunkite stulpelį. Priešingu atveju, jei stulpelis yra išjungtas ir„ flipMe “yra mažesnis nei 30%, įjunkite stulpelį.“aukštyn Matrica. Į antrinį raktą…

6 veiksmas: papildomas raktas ()

Žemiau pateikiamas pagrindinis metodas. Sub klavišas (msg) „atsispausdina„ matricos “pranešimus ir ištrina juos.sleep 250nextwscript.sleep 3000for position = 1 to length wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subTis metodas išspausdina eilutę "msg". Atspausdins viską, ką pravažiuosite. Šis metodas vadinamas kodu vėliau. Pirmoji FOR ciklas išspausdina kiekvieną eilutės simbolį po vieną ir pristabdo 250 milisekundžių tarp kiekvieno simbolio. Tada mes miegame 3000 milis (3 sekundes) ir užrašome grįžtamąjį klavišą kiekvienam anksčiau išspausdintam simboliui, šį kartą miegodami šiek tiek mažiau. Tai viskas. Pereikite prie pagrindinio programos turinio, kur viskas susideda.

7 žingsnis: pagrindinis

Pagrindinis programos vykdymas kviečia „waitFor“ir „matrix“(kurią jau apžvelgėme), kad viską nustatytų ir išrašytų 200 dvejetainių skaitmenų, paskirstytų 5 stulpeliuose. Tada paimamas dabartinio sistemos vartotojo vardas ir manipuliuojama, kad jis būtų atspausdintas kaip „pabudimo“sekos dalis. Tada įvedame FOR ciklą, kurį žinome, kad kartosime tik daugiau nei 4 kartus, nes „1 Iki 4 colių apribojimo. Tada mes pasirenkame savo kilpos kintamąjį (loopA), kuris pirmą kartą atitinka pirmą CASE sakinį, antrasis CASE sakinys - antrą kartą per ciklą ir tt Kiekviena ciklo iteracija nustatoma teisingai veiksmažodis, kurį norime išspausdinti, ir pagrindinė paprograma yra iš tikrųjų atlikta spausdinti. Akivaizdu, kad yra daug kitų būdų, kaip sukurti šią kilpą, ir aš tai paliksiu skaitytojui. Kai išeisime iš ciklo FOR, mes dar kartą iškviečiame matricos paprogramę, kad išspausdintume daugiau skaičių. Kaip sakoma kodo komentare, šį paskutinį skambutį galite įjungti į matricą (), jei norite, arba tiesiog paskambinti didesniu numeriu ir pan. Galiausiai, mūsų raginimas mesti () nutraukia programą vykdymas (visada gera praktika: P). Tikiuosi, visiems smagu imti mano pavyzdį ir padaryti jį geresnį! Jei šis „Instructable“sukėlė jūsų smalsumą naudojant „VB“, „Google“gali pateikti daugybę gerų išteklių, kad sužinotų daugiau apie tai, nei galiu jums pasakyti. Laimingo kodavimo! martinas

Rekomenduojamas: