Obsah:

Matrix Code - Visual Basic: 7 Steps
Matrix Code - Visual Basic: 7 Steps

Video: Matrix Code - Visual Basic: 7 Steps

Video: Matrix Code - Visual Basic: 7 Steps
Video: GUI Programming with Visual Basic - Determinant of a 2 X 2 Matrix 2024, Červenec
Anonim
Matrix Code - Visual Basic
Matrix Code - Visual Basic

Nový a vylepšený kód jazyka Visual Basic zobrazí efekt podobný „Matrixu“s posouváním jedniček a nul. Poté se sekne na sekvenci Matrix „Wake Up Neo“a poté pokračuje v posouvání čísel. Uvědomuji si, že to není přesně to, jak se sekvence ve filmu nachází, ale byli tu lidé, kteří o tuto funkci žádali, proto jsem ji přidal. Myslím, že způsob, jakým randomizuji zobrazení sloupců jedničky a nuly, je nejčistší část kódu. Později přesně promluvím o tom, co jsem udělal. Tento Instructable je reakcí na instruktáž Brennn10 „Welcome to the Matrix in Command Prompt“. Kód, který tvoří tento Instructable, byl původně založen na kódu zveřejněném v komentáři DarkJoker k výše uvedenému Instructable. Záměrně jsem byl s vysvětlením kódu poměrně explicitní, protože jsem od prvního okamžiku obdržel několik žádostí o objasnění zveřejnil toto řešení.

Krok 1: Popadněte můj kód

Níže jsem připojil svůj kód. Uložte oba soubory (startMatrix.itsabat a matrix.itsavbs) do stejné složky ve vašem počítači a odeberte část „itsa“názvu souboru, tj. Přejmenujte soubory na startMatrix.bat a matrix.vbs. Soubory Bat a soubory VBS jsou spustitelné, a proto je zde nemohu nahrát s těmito příponami. Proto je musíte uložit a přejmenovat místně.

Krok 2: Provedení kódu

Pokud chcete spustit můj kód, postupujte podle níže uvedených pokynů. Pokud na svém počítači nechcete spustit něco, o čem nic nevíte, jste chytří. Měli byste přejít k dalšímu kroku, kde projdu kód a ukážu vám, že jsem neudělal nic zlého. Pokud se však chcete jen dostat k tomu (nebo jste na počítači někoho jiného a ne péče), zde je návod, jak spustit kód: Krok 1: dvakrát klikněte na „startMatrix.bat“. To je vše. Nyní přejděte k dalšímu kroku a přečtěte si o chladu, který jste právě viděli.

Krok 3: Porozumění kódu, část 1

Pojďme se podívat na kód, počínaje od začátku. Doufejme, že se z mého kódu můžete dozvědět dost o VB, že vyrazíte a naučíte se kódovat ve VB lépe než já:) Nejprve tedy máme 2 soubory: soubor bat a soubor vbs. Pokud upravíte soubor bat, všimnete si, že po nastavení okna, barvy textu a názvu okna spustí soubor vbs. Přejdeme k zajímavějším věcem v souboru vbs. FYI, dotknu se zde pouze nejzajímavějších řádků kódu. Věnujte také zvláštní pozornost řádkům začínajícím na '(zatržítko nebo jednoduchá citace). Toto jsou komentáře a NEBUDOU PROVEDENY. Prvních několik řádků matrix.vbs říká „Nastavit mé chybové zprávy na explicitní úroveň“, ale zároveň „Nenechte chyby, které jsem udělal, fatální“. Žádná skutečná diskuse není potřeba. Řádek 5: Naše tlumené prohlášení zde nastavuje všechny proměnné, které budeme používat po celý život našeho malého programu. Pro tyto proměnné nemusíme deklarovat typy nebo pro ně počáteční hodnoty, jako bychom to mohli dělat v některých jiných jazycích. VB je takto „mocný“. Řádek 12: objSysInfo nám umožňuje shromáždit nějaké informace o systému, na kterém běžíme. Zde vytvoříme objekt a na řádku 13 objSysInfo. UserName vrátí jméno aktuálně přihlášeného uživatele, který tento kód provádí. To bude použito později místo „Neo“, aby náš skript mohl říci „Probuď se, Martine…“, pokud je spuštěn na mém počítači, nebo „Probuď se, Brennn10…“, pokud je spuštěn na počítači Brennn10 a pokud to bylo jeho uživatelské jméno. Použití uživatelského jména systému vám umožní hodit ho na odemčený počítač vašeho kamaráda a automaticky vytáhne jeho jméno, aniž byste museli měnit kód. Pojďme dál.

Krok 4: Porozumění kódu, část 2

Řádek 16: dílčí čekání je náš první podprogram. Podprogram lze volat z jiného místa v kódu, spustí kód v těle podprogramu a poté vrátí řízení programu do volacího kódu. waitfor nastaví náš shell pro nás. Tím, že to provedeme ve smyčce se „spánkem“ve smyčce, umožníme aktivaci shellu dokončit před vrácením kontroly, což je velmi dobrá věc. Řádek 26: dílčí matice je náš druhý podprogram a trvá parametr s názvem „prvky“. Tento podprogram provádí tisk skvělých čísel, která vypadají, že „padají“, jako ve filmu. Pár věcí jsem zde považoval za samozřejmost. Naštěstí jejich vysvětlením pochopíte, odkud pocházím, a zvládnete to lépe než já. Nejprve předpokládám, že chcete pouze 5 sloupců čísel a že „prvky“jsou dělitelné počtem sloupců (5). To bylo snadné zaručit, protože později prohlašuji, že parametry předané „matici“jsou 200 a 100 (volá se dvakrát). Předpokládám také, že ve výchozím nastavení chcete zapnout všech 5 sloupců. Myslím, že to vypadá dobře, ale několik z nich můžete změnit na NEPRAVDA, pokud chcete, aby první řádek čísel vypadal stejně náhodně jako ostatní řádky. OK, takže máme 5 sloupců, máme 200 / 5 = 40 řádků čísel k zobrazení (linesToWrite) a všechny naše sloupce jsou ve výchozím nastavení zapnuty. Řádek 41: vstupujeme do dvou smyček „pro“, z nichž první (smyčka A) cykluje našimi řádkyToWrite a druhá (Smyčka B), která cykluje počtem sloupců. Ve smyčce B vybereme hodnotu proměnné smyčky loopB a podle její hodnoty vyhodnotíme příkaz If-Else. Pokud je dotyčný sloupec povolen („PRAVDA“nebo „zapnut“), vytiskneme pomocí „wshshell. SendKeys“hodnotu Int (Round (rnd ())), za kterou bude následovat tabulátor. V opačném případě vytiskneme pouze kartu, takže sloupec bude prázdný. Jaká je tedy hodnota Int (Round (rnd ()))? rnd () vrací náhodné číslo s pohyblivou řádovou čárkou mezi 0,0 a 1,0, Round () tuto hodnotu převezme a zaokrouhlí na nejbližší celočíselnou hodnotu a Int () přenese výsledek na celé číslo. Tento poslední krok lze považovat za přehnaný, protože volání Round () by nám mělo dát 0 nebo 1. Udělal jsem to jen kvůli zvyku. V určitém okamžiku mi někdo musel říct, že je to bezpečnější, a já jsem na to zjevně ještě nezapomněl. K části 3…

Krok 5: Porozumění kódu, část 3

Pokračující dílčí matice, zde je několik dalších řádků VB … „Toto překlápí sloupce“, takže pokud je sloupec VYPNUT, bude zapnut 30 procent času, „a pokud je sloupec ZAPNUTÝ, bude vypnuto 30 procent času. turnOffMax = 0,30 turnOnMax = 0,30 Přepínáním každého sloupce 30% času se sloupce čísel "propadají" náhodným způsobem podobně jako ve filmu. Ne přesně, ale blízko. 'Sloupec 1 flip-flop flipMe = rnd () If ((col1 = turnOn) a (flipMe <turnOffMax)) Then col1 = turnOff Else If ((col1 = turnOff) and (flipMe <turnOnMax)) Then col1 = turnOn End IfThe výše uvedený blok zpracovává, jak určíme, zda budeme v daném sloupci zobrazovat číslo během příští iterace, pro další řadu čísel. Kód zní „je -li sloupec zapnutý a náhodné číslo s názvem flipMe je menší než 30%, sloupec vypněte. V opačném případě, pokud je sloupec vypnutý a flipMe menší než 30%, sloupec zapněte.“Tím se zalomí up sub Matrix. Na podklíč…

Krok 6: Dílčí klíč ()

Klíčová metoda je níže.sub key (msg) 'to printouts of "the matrix" messages, and erase themwscript.sleep 1500length = len (msg) for position = 1 to length wshshell. SendKeys mid (msg, position, 1) wscript.sleep 250nextwscript.sleep 3000for pozice = 1 na délku wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subTato metoda vytiskne řetězec "msg". Vytiskne vše, co předáte. Tato metoda se v kódu nazývá později. První smyčka FOR vytiskne každý znak v řetězci, jeden po druhém, a pozastaví se na 250 milisekund mezi každým znakem. Poté spíme 3 000 mil (3 sekundy) a napíšeme backspace pro každou postavu, kterou jsme dříve vytiskli, tentokrát spíme trochu méně. To je vše. Na hlavní část programu, kde se vše spojuje.

Krok 7: Hlavní

Hlavní spuštění programu volá waitFor a matici (kterou jsme již probrali), abychom vše nastavili a zapsali 200 binárních číslic rozložených do 5 sloupců. Poté se popadne jméno aktuálního uživatele systému a manipuluje se s ním, aby se vytisklo jako součást sekvence „probuzení“. Poté zadáme smyčku FOR, o které víme, že ji budeme opakovat pouze 4krát kvůli „1“Na omezení 4 . Potom vybereme proměnnou smyčky (loopA), která odpovídá prvnímu příkazu CASE při prvním průchodu, druhému příkazu CASE podruhé smyčkou atd. Každá iterace smyčky myString je nastavena na správnou řetězcovou reprezentaci slovesnost, kterou chceme vytisknout, a klíčový podprogram je povolán ke skutečnému tisku. Existuje samozřejmě mnoho dalších způsobů, jak tuto smyčku navrhnout, a to nechám jako cvičení na čtenáři. Jakmile smyčku FOR opustíme, znovu zavoláme podprogram matice a vytiskneme další čísla. Jak říká komentář v kódu, toto konečné volání matrix () můžete dát do smyčky, pokud chcete, nebo jej můžete jednoduše zavolat větším číslem atd. Nakonec naše volání quit () přeruší program provedení (vždy dobrá praxe: P). Doufám, že se každý baví, když si vezme můj příklad a vylepší ho! Pokud tento Instructable vzbudil vaši zvědavost pomocí VB, Google vám může poskytnout spoustu dobrých zdrojů, abyste se o něm dozvěděli více, než vám mohu sdělit. Šťastné kódování! Martin

Doporučuje: