Obsah:

Maticový kód - Visual Basic: 7 krokov
Maticový kód - Visual Basic: 7 krokov

Video: Maticový kód - Visual Basic: 7 krokov

Video: Maticový kód - Visual Basic: 7 krokov
Video: C# ПЕРВАЯ ПРОГРАММА | VISUAL STUDIO | КАК СОЗДАТЬ ПРОЕКТ | C# ОТ НОВИЧКА К ПРОФЕССИОНАЛУ | Урок #1 2024, December
Anonim
Maticový kód - Visual Basic
Maticový kód - Visual Basic

Nový a vylepšený kód jazyka Visual Basic bude zobrazovať efekt podobný „matici“s posúvaním jednotiek a nuly. Potom sa skráti na sekvenciu Matrix „Wake Up Neo“a potom pokračuje v posúvaní čísel. Uvedomujem si, že to nie je presne to, ako sa sekvencia vo filme nachádza, ale ľudia sa pýtali na túto funkciu, preto som ju pridal. Myslím si, že spôsob, akým randomizujem zobrazenie stĺpcov One a Zero, je najhľadanejšia časť kódu. Neskôr prediskutujem presne to, čo som urobil. Tento Instructable je reakciou na pokyn Brennn10 „Welcome to the Matrix in Command Prompt“. Kód, ktorý tvorí tento Instructable, bol pôvodne založený na kóde uverejnenom v komentári spoločnosti DarkJoker k vyššie uvedenému Instructable. Zámerne som bol pri svojom vysvetlení kódu dosť explicitný, pretože som od začiatku dostal niekoľko žiadostí o objasnenie. zverejnil toto riešenie.

Krok 1: Zoberte si môj kód

Nižšie prikladám svoj kód. Uložte oba súbory (startMatrix.itsabat a matrix.itsavbs) do rovnakého priečinka na vašom počítači a odstráňte časť „itsa“názvu súboru, t.j. premenujte súbory na startMatrix.bat a matrix.vbs. Súbory Bat a súbory VBS sú spustiteľné, a preto ich sem nemôžem nahrať s týmito príponami. Preto ich musíte lokálne uložiť a premenovať.

Krok 2: Spustenie kódu

Ak chcete spustiť môj kód, postupujte podľa nižšie uvedených pokynov. Ak nechcete na svojom počítači spustiť niečo, o čom nič neviete, ste múdri. Mali by ste prejsť na ďalší krok, kde prejdem kódom a ukážem vám, že som neurobil nič zlomyseľné. Ak sa však k tomu chcete len dostať (alebo ste na počítači niekoho iného a nie starostlivosť), návod, ako začať kód: Krok 1: dvakrát kliknite na „startMatrix.bat“. To je všetko. Teraz pokračujte k ďalšiemu kroku a prečítajte si o pohode, ktorú ste práve videli.

Krok 3: Pochopenie kódu, časť 1

Pozrime sa na kód, od začiatku. Našťastie sa z môjho kódu môžete o VB dozvedieť dosť, že sa pustíte do práce a naučíte sa kódovať vo VB lepšie ako ja:) Najprv teda máme 2 súbory: súbor bat a súbor vbs. Ak upravíte súbor bat, všimnete si, že po nastavení okna, farby textu a názvu okna spustí súbor vbs. Prejdeme k zaujímavejším veciam v súbore vbs. FYI, dotknem sa tu len najzaujímavejších riadkov kódu. Osobitne si všimnite riadky začínajúce na „(začiarknutie alebo jednoduchá úvodzovka). Toto sú komentáre a NEBUDÚ VYKONANÉ. Prvých niekoľko riadkov matrix.vbs hovorí „Nastav moje chybové správy na explicitnú úroveň“, ale zároveň „Nedovoľte, aby boli chyby, ktorých som sa dopustil, smrteľné“. Nie je potrebná žiadna skutočná diskusia. Riadok 5: Naše tlmené vyhlásenie tu nastavuje všetky premenné, ktoré budeme používať počas života nášho malého programu. Pre tieto premenné nepotrebujeme deklarovať typy alebo počiatočné hodnoty, ako by sme to mohli robiť v niektorých iných jazykoch. VB je takto „silný“. Riadok 12: objSysInfo nám umožňuje zhromaždiť niekoľko informácií o systéme, na ktorom bežíme. Tu vytvoríme objekt a na riadku 13 objSysInfo. UserName vráti meno aktuálne prihláseného používateľa, ktorý tento kód vykonáva. Toto bude použité neskôr namiesto „Neo“, aby náš skript mohol povedať „Zobuď sa, Martin …“, ak je spustený na mojom počítači, alebo „Zobuď sa, Brennn10 …“, ak je spustený na počítači Brennn10 a ak to bolo jeho používateľské meno. Použitie používateľského mena systému vám umožní hodiť ho na odomknutý stroj vášho priateľa a automaticky vytiahne jeho meno bez toho, aby ste museli meniť kód. Poďme ďalej.

Krok 4: Pochopenie kódu, časť 2

Riadok 16: čiastkové čakanie je náš prvý podprogram. Podprogram je možné zavolať z iného miesta v kóde, vykoná kód v tele podprogramu a potom vráti riadenie programu do volacieho kódu. waitfor nám nastaví shell. Tým, že to urobíme v slučke s „spánkom“v rámci slučky, umožníme aktiváciu shellu dokončiť pred vrátením ovládania, čo je veľmi dobrá vec. Riadok 26: čiastková matica je náš druhý podprogram a trvá parameter nazývaný „prvky“. Tento podprogram tlačí chladné čísla, ktoré „vypadávajú“ako vo filme. Niekoľko vecí som tu považoval za samozrejmé. Našťastie ich vysvetlením pochopíte, odkiaľ pochádzam, a zvládnete to lepšie ako ja. Najprv predpokladám, že chcete iba 5 stĺpcov s číslami a „prvky“je deliteľné počtom stĺpcov (5). To sa dalo ľahko zaručiť, pretože neskôr deklarujem parametre odovzdané „matici“200 a 100 (volá sa to dvakrát). Tiež predpokladám, že chcete predvolene zapnúť všetkých 5 stĺpcov. Myslím, že to vyzerá dobre, ale niekoľko z nich by ste mohli zmeniť na FALSE, ak by ste chceli, aby prvý riadok čísel vyzeral rovnako náhodne ako ostatné riadky. OK, takže máme 5 stĺpcov, máme 200 / 5 = 40 riadkov čísel na zobrazenie (linesToWrite) a všetky naše stĺpce sú predvolene zapnuté. Riadok 41: zadáme dve slučky „pre“, z ktorých prvá (slučka A) cykluje našimi riadkamiToWrite a druhá (Slučka B), ktorá cyklicky prechádza počtom stĺpcov. V slučke B vyberieme hodnotu premennej slučky loopB a v závislosti od jej hodnoty vyhodnotíme príkaz If-Else. Ak je príslušný stĺpec zapnutý („TRUE“alebo „zapnutý“), vytlačíme prostredníctvom „wshshell. SendKeys“hodnotu Int (Round (rnd ())), za ktorou bude nasledovať tab. V opačnom prípade vytlačíme iba kartu, takže stĺpec bude prázdny. Aká je teda hodnota Int (Round (rnd ()))? rnd () vráti náhodné číslo s pohyblivou rádovou čiarkou medzi 0,0 a 1,0, Round () vezme túto hodnotu a zaokrúhli ju na najbližšiu celočíselnú hodnotu a Int () prenesie výsledok na celé číslo. Tento posledný krok by sme mohli považovať za prehnaný, pretože výzva Round () by nám mala dať 0 alebo 1. Urobil som to len zo zvyku. V istom momente mi niekto musel povedať, že je to bezpečnejšie, a zrejme som na to ešte nezabudol. K časti 3…

Krok 5: Pochopenie kódu, časť 3

Pokračujúca čiastková matica, tu je niekoľko ďalších riadkov VB … „Toto preklopí stĺpce“, takže ak je stĺpec VYPNUTÝ, zapne sa 30 % času, a ak je stĺpec ZAPNUTÝ, bude vypnuté 30 percent času. turnOffMax = 0,30 turnOnMax = 0,30Prepínaním každého stĺpca v 30% prípadov číselné stĺpce „padajú“náhodným spôsobom podobne ako vo filme. Nie presne, ale blízko. „Stĺpec 1 preklopný flipMe = rnd () If ((col1 = TurnOn) a (flipMe <turnOffMax)) Then col1 = TurnOff Else If ((col1 = TurnOff) and (flipMe <turnOnMax)) Then col1 = TurnOn End IfThe nad blokom sa riadi tým, ako určíme, či v nasledujúcom iterácii pre nasledujúci riadok čísiel zobrazíme číslo v danom stĺpci. Kód znie „ak je stĺpec zapnutý a náhodné číslo s názvom flipMe je menšie ako 30%, stĺpček vypnite. V opačnom prípade, ak je stĺpec vypnutý a flipMe menší ako 30%, zapnite ho.“Tým sa zalomí up sub Matrix. Na podkľúč…

Krok 6: Podkľúč ()

Kľúčová metóda je uvedená nižšie. Kľúč sub (msg) 'robí výtlačky správ „matice“a vymaže ichwscript.sleep 1500length = len (msg) for position = 1 to length wshshell. SendKeys mid (msg, position, 1) wscript.sleep 250nextwscript.sleep 3000for position = 1 na dĺžku wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subTáto metóda vytlačí reťazec "msg". Vytlačí všetko, čo miniete. Táto metóda sa v kóde nazýva neskôr. Prvá slučka FOR vytlačí každý znak v reťazci jeden po druhom a medzi každým znakom sa zastaví na 250 milisekúnd. Potom spíme 3 000 mil (3 sekundy) a napíšeme backspace pre každý znak, ktorý sme predtým vytlačili, tentokrát zaspíme o niečo menej. To je všetko, čo k tomu patrí. Na hlavnú časť programu, kde sa všetko spája.

Krok 7: Hlavné

Hlavné spustenie programu vyžaduje waitFor a maticu (o ktorej sme už hovorili), aby sme všetko nastavili a zapísali 200 binárnych číslic rozložených do 5 stĺpcov. Potom sa zachytí a upraví meno aktuálneho používateľa systému, aby sa vytlačilo ako súčasť sekvencie „prebudenia“. Potom zadáme slučku FOR, o ktorej vieme, že ju budeme opakovať iba štyrikrát, pretože „1“Na obmedzenie 4 . Potom vyberieme premennú slučky (loopA), ktorá sa zhoduje s prvým príkazom CASE pri prvom prechode, s druhým príkazom CASE po druhýkrát v cykle atď. Pri každej iterácii slučky je myString nastavený na správnu reťazcovú reprezentáciu sloveso, ktoré chceme vytlačiť, a kľúčový podprogram je povolaný skutočne tlačiť. Existuje samozrejme mnoho ďalších spôsobov, ako navrhnúť túto slučku, a to nechám ako cvičenie na čitateľa. Akonáhle opustíme slučku FOR, znova zavoláme podprogram matice, aby sme vytlačili ďalšie čísla. Ako hovorí komentár v kóde, toto posledné volanie na matrix () môžete dať do slučky, ak chcete, alebo ho môžete jednoducho zavolať s väčším číslom atď. Nakoniec naše volanie na ukončenie () program preruší prevedenie (vždy dobrá prax: P). Dúfam, že sa každý baví, keď si vezme môj príklad a bude ho lepšie! Ak tento návod vzbudil vo VB vašu zvedavosť, Google vám môže poskytnúť veľa dobrých zdrojov, aby ste sa o ňom dozvedeli viac, ako vám môžem povedať. Šťastné kódovanie! martin

Odporúča: