Tartalomjegyzék:

Mátrix kód - Visual Basic: 7 lépés
Mátrix kód - Visual Basic: 7 lépés

Videó: Mátrix kód - Visual Basic: 7 lépés

Videó: Mátrix kód - Visual Basic: 7 lépés
Videó: Visual Basic.net - Урок 5 - Массивы (создание, сортировка пузырьком, перемешивание) 2024, Július
Anonim
Mátrix kód - Visual Basic
Mátrix kód - Visual Basic

Az új és továbbfejlesztett Visual Basic kód "Mátrix" -szerű hatást fog megjeleníteni, görgetve az egyiket és a nullát. Ezután a Mátrix "Wake Up Neo" szekvenciájára vág, majd folytatja a számok görgetését. Tudom, hogy ez nem pontosan így megy a filmben, de voltak, akik ezt a funkciót kérték, ezért hozzáadtam. Azt hiszem, az egyik és a nulla oszlopának megjelenítésének véletlenszerű kiválasztása a kód legtisztább része. Pontosan megbeszélem, mit tettem később. Ez az Instructable válasz Brennn10 "Welcome to the Matrix in Command Prompt" utasítására. Az ezt az Instructable -t alkotó kód kezdetben a DarkJoker által a fenti Instructable -hez fűzött megjegyzésben közzétett kódon alapult. Szándékosan meglehetősen egyértelmű voltam a kód magyarázatával, mivel jó néhány tisztázási kérelmet kaptam az első óta közzétette ezt a megoldást.

1. lépés: Fogd meg a kódomat

Alább csatoltam a kódomat. Mentse el mindkét fájlt (startMatrix.itsabat és matrix.itsavbs) a gép ugyanazon mappájába, és távolítsa el a fájlnév "itsa" részét, azaz nevezze át a fájlokat startMatrix.bat és matrix.vbs fájlokra. A denevérfájlok és a vbs fájlok végrehajthatók, ezért nem tudom feltölteni őket ezekkel a kiterjesztésekkel. Ezért ezeket helyben kell menteni és átnevezni.

2. lépés: A kód végrehajtása

Ha futtatni szeretné a kódomat, kövesse az alábbi utasításokat. Ha nem akarsz olyat végrehajtani a gépeden, amiről semmit sem tudsz, akkor okos vagy. Folytassa a következő lépéssel, ahol átsétálok a kódon, és megmutatom, hogy nem csináltam semmi gonosz dolgot. Ha azonban csak el akarja érni (vagy valaki más gépén van, és nem gondozás), a következőképpen indítsa el a kódot: 1. lépés: kattintson duplán a "startMatrix.bat" elemre. Ennyi. Most folytassa a következő lépéssel, hogy elolvashassa az éppen látott hűvösséget.

3. lépés: A kód megértése, 1. rész

Nézzük meg a kódot, kezdve az elejétől. Remélhetőleg elég sokat megtudhatsz a VB -ről a kódomból, hogy elmész és megtanulod, hogyan kell jobban kódolni a VB -ben, mint én:) Tehát először is két fájlunk van: egy bat fájl és egy vbs fájl. Ha szerkesztjük a bat fájlt, észrevesszük, hogy végrehajtja a vbs fájlt az ablak, a szöveg színének és az ablak címének beállítása után. Folytassuk a vbs fájl érdekesebb dolgaival. FYI, itt csak a legérdekesebb kódsorokat fogom érinteni. Ezenkívül különös figyelmet kell fordítani a "(pipa vagy egyetlen idézet) kezdő sorokra. Ezek megjegyzések, és NEM VÉGREHAJNAK. A matrix.vbs első néhány sora azt mondja: "Állítsa a hibaüzeneteket az explicit szintre", de ugyanakkor "Ne hagyja, hogy az elkövetett hibák végzetesek legyenek". Nincs szükség valódi vitára. 5. sor: Halvány kijelentésünk minden olyan változót beállít, amelyeket a kis programunk során használni fogunk. Nem kell deklarálnunk ezeknek a változóknak a típusait, vagy a kezdeti értékeket, mint néhány más nyelv esetében. A VB ilyen "erőteljes". 12. sor: Az objSysInfo segítségével összegyűjthetünk néhány információt a rendszerről, amelyen futunk. Itt hozzuk létre az objektumot, és a 13. sorban az objSysInfo. UserName az éppen bejelentkezett felhasználó nevét adja vissza, aki végrehajtja ezt a kódot. Ezt később a „Neo” helyett fogjuk használni, hogy a szkriptünk azt tudja mondani: „Ébredj fel, Martin…”, ha a gépemen fut, vagy „Ébredj fel, Brennn10…”, ha Brennn10 gépén fut, és ha ez volt a felhasználóneve. A rendszer felhasználónevének használatával lehetővé teszi, hogy a haverja zárolt gépére dobja, és automatikusan lehívja a nevét, anélkül, hogy módosítania kellene a kódot. Lépjünk tovább.

4. lépés: A kód megértése, 2. rész

16. sor: az alvárás az első alprogramunk. Egy alprogramot meg lehet hívni a kód egy másik helyéről, végrehajtja a kódot az alprogram törzsén belül, majd visszaadja a programvezérlést a hívó kódnak. waitfor felállítja nekünk a kagylónkat. Ha ezt egy olyan ciklusban hajtjuk végre, amelyen belül "alvás" van, akkor lehetővé tesszük a héj aktiválását a vezérlés visszaadása előtt, ami nagyon jó dolog. 26. sor: az almátrix a második alprogramunk, és "elemek" nevű paraméter. Ez az alprogram kinyomtatja a hűvös számokat, amelyek "esnek", mint a filmben. Itt néhány dolgot természetesnek vettem. Remélhetőleg, ha elmagyarázza őket, megérti, honnan jövök, és jobban tudja csinálni, mint én. Először is feltételezem, hogy csak 5 számoszlopot szeretne, és az "elemek" oszthatók az oszlopok számával (5). Ezt könnyű volt garantálni, mert később a "mátrix" -nak továbbított paramétereket 200 -nak és 100 -nak nyilvánítom (kétszer hívják). Azt is feltételezem, hogy alapértelmezés szerint mind az 5 oszlopot be szeretné kapcsolni. Úgy gondolom, hogy jól néz ki, de ezek közül néhányat hamisra módosíthat, ha azt szeretné, hogy az első számsor véletlenszerűnek tűnjön, mint a többi sor. Rendben, tehát 5 oszlopunk van, 200 / 5 = 40 megjelenítendő számsor (linesToWrite), és minden oszlopunk alapértelmezés szerint be van kapcsolva. (B hurok), amely az oszlopok számát keresi. A B ciklusban kiválasztjuk a loopB ciklusváltozó értékét, és annak értékétől függően értékelünk egy If-Else utasítást. Ha a szóban forgó oszlop engedélyezve van ("TRUE" vagy "on"), akkor a "wshshell. SendKeys" segítségével kinyomtatjuk az Int (Round (rnd ())) értékét, majd egy lapot. Ellenkező esetben csak egy lapot nyomtatunk ki, így az oszlop üresnek tűnik. Tehát mi az értéke Int (Round (rnd ()))? Az rnd () egy véletlenszerű lebegőpontos számot ad vissza 0,0 és 1,0 között, a Round () felveszi ezt az értéket, és kerekíti a legközelebbi egész értékre, az Int () pedig egész számra adja az eredményt. Ez az utolsó lépés túlzásnak tekinthető, mivel a Round () hívásnak 0 vagy 1 értéket kell adnia. Csak szokásom miatt tettem. Egy bizonyos ponton valaki biztosan azt mondta nekem, hogy biztonságosabb, és láthatóan még nem felejtettem el. A 3. részről…

5. lépés: A kód megértése, 3. rész

Folytatva az almátrixot, itt vannak a VB következő néhány sora … "Ez a flip-flop oszlop", tehát ha egy oszlop KI van kapcsolva, akkor az idő 30 százalékában BE lesz kapcsolva, és ha egy oszlop BE, akkor az az esetek 30 százalékában KIKAPCSOLT. turnOffMax = 0,30 turnOnMax = 0,30Az egyes oszlopok 30% -os átkapcsolásával a számoszlopok véletlenszerűen "esnek", hasonlóan a filmhez. Nem pontos, de közel. '1. oszlop flip-flop flipMe = rnd () If ((col1 = TurnOn) és (flipMe <turnOffMax)) Akkor col1 = TurnOff Else If ((col1 = TurnOff) és (flipMe <turnOnMax)) Ezután col1 = TurnOn End If A fenti blokk kezeli, hogyan határozzuk meg, hogy a következő iteráció során, a következő számsoron megjelenítünk -e egy számot az adott oszlopban. A kód így szól: "ha az oszlop be van kapcsolva, és a flipMe nevű véletlen szám kevesebb, mint 30%, kapcsolja ki az oszlopot. Ellenkező esetben, ha az oszlop ki van kapcsolva, és a flipMe kevesebb, mint 30%, kapcsolja be az oszlopot." fel sub Mátrix. Tovább az algombhoz…

6. lépés: Alkulcs ()

A kulcsmódszer az alábbiakban található. Sub kulcs (msg) 'nyomatja ki a "mátrix" üzeneteket, és törli a themwscript -et..sleep 250nextwscript.sleep 3000for position = 1 to length wshshell. SendKeys "{BACKSPACE}" wscript.sleep 75nextend subEz a módszer "msg" karakterláncot nyomtat ki. Bármit kinyomtat, amit átad. Ezt a módszert később hívják meg a kódban. Az első FOR ciklus egyenként kinyomtatja a karakterlánc minden karakterét, és 250 milliszekundum szünetet tart minden karakter között. Ezután 3000 millis (3 másodperc) alvást végzünk, és minden egyes korábban nyomtatott karakterhez írunk vissza, ezúttal egy kicsit kevesebbet. Ez minden. Tovább a program törzséhez, ahol minden összeáll.

7. lépés: Fő

A program fő végrehajtása a waitFor és a mátrix hívja (amit már lefedtünk), hogy mindent beállítson, és 200 bináris számjegyet írjon ki, 5 oszlopra. A rendszer jelenlegi felhasználójának nevét ezután megragadják és manipulálják, hogy kinyomtassák az "ébresztés" részeként. Ezután belépünk egy FOR ciklusba, amelyről tudjuk, hogy csak 4 -szer ismételjük az "1" miatt 4 "kényszerhez. Ezután kiválasztjuk a ciklusváltozónkat (loopA), amely első alkalommal egyezik az első CASE utasítással, a második CASE utasítással másodszor a cikluson keresztül stb. A ciklus minden iterációja esetén a myString a a nyomtatni kívánt szóhasználatot, és a kulcs alprogramot hívják meg a nyomtatáshoz. Nyilvánvalóan sok más módja is van ennek a ciklusnak a megtervezésére, és ezt gyakorlásként hagyom az olvasóra. Miután kilépünk a FOR ciklusból, ismét hívjuk a mátrix alprogramot, hogy több számot nyomtassunk ki. Ahogy a kódban található megjegyzés mondja, ezt az utolsó hívást a mátrixhoz () hurokba teheti, ha akarja, vagy hívhatja nagyobb számmal, stb. Végül a kilépési felhívás () megszakítja a programot végrehajtás (mindig jó gyakorlat: P). Remélem, mindenki jól szórakozik, ha példámat veszi és jobbá teszi! Ha ez az Instructable felkeltette a kíváncsiságát a VB -vel, a Google rengeteg jó forrást tud biztosítani ahhoz, hogy többet tudjon meg róla, mint amennyit én el tudok mondani. Boldog kódolást! Márton

Ajánlott: